Eklenti modellerini Nvault ekleme
Gönderilme zamanı: Prş Oca 06, 2022 12:52 pm
Şapka modelleri harita değişince ve oyuncu oyundan çıkıp girince de gitmesin istiyorum bunu ekleyebilir misiniz
Teşekkürler eline sağlık kusura bakma yorduysakbestcore yazdı: Prş Oca 06, 2022 1:41 pm Gerçekten bir eklentide bu kadar zorlandığımı gördüm, fonksiyonların id'si farklı farklı isimler ile açılmış, yazılar yan yana yazılmış gerçekten çok karmaşık ama yapmayı başarabildim;
sapka.sma
bestcore yazdı: Prş Oca 06, 2022 1:41 pm Gerçekten bir eklentide bu kadar zorlandığımı gördüm, fonksiyonların id'si farklı farklı isimler ile açılmış, yazılar yan yana yazılmış gerçekten çok karmaşık ama yapmayı başarabildim;
sapka.sma
Dahiyane bir tespit, bayıldımFatih ~ EjderYa yazdı: Cmt Oca 08, 2022 11:29 am "geçen sene bi kod yazmışım, kodun nasıl çalıştığını sadece allah ve ben biliyordum. Şimdi ise sadece allah biliyor" misali
E2364572-B6A1-4546-A209-B6F1585E8E98.jpeg
Kral buna bir de admin coin verme ekleyebilir misin sana zahmetbestcore yazdı: Prş Oca 06, 2022 1:41 pm Gerçekten bir eklentide bu kadar zorlandığımı gördüm, fonksiyonların id'si farklı farklı isimler ile açılmış, yazılar yan yana yazılmış gerçekten çok karmaşık ama yapmayı başarabildim;
sapka.sma
Kendisine mi verecek coini, başkasına mı ?Serpentraz yazdı: Cmt Oca 08, 2022 1:49 pmKral buna bir de admin coin verme ekleyebilir misin sana zahmetbestcore yazdı: Prş Oca 06, 2022 1:41 pm Gerçekten bir eklentide bu kadar zorlandığımı gördüm, fonksiyonların id'si farklı farklı isimler ile açılmış, yazılar yan yana yazılmış gerçekten çok karmaşık ama yapmayı başarabildim;
sapka.sma
Başkasına ve kendisine de verebilsinbestcore yazdı: Cmt Oca 08, 2022 3:04 pmKendisine mi verecek coini, başkasına mı ?Serpentraz yazdı: Cmt Oca 08, 2022 1:49 pmKral buna bir de admin coin verme ekleyebilir misin sana zahmetbestcore yazdı: Prş Oca 06, 2022 1:41 pm Gerçekten bir eklentide bu kadar zorlandığımı gördüm, fonksiyonların id'si farklı farklı isimler ile açılmış, yazılar yan yana yazılmış gerçekten çok karmaşık ama yapmayı başarabildim;
sapka.sma
amx_coinver nick miktar şeklinde denersin, satır 6'dan yetkiyide ayarlamayı unutma. Buyur;
Kod: Tümünü seç
#include <amxmodx>
#include <nvault>
#include <reapi>
#define Kac_Dakikada_Bir 5
#define COINVER_YETKI ADMIN_RCON // Coin vermek için gereken yetki.
new const sTag[] = "HAT";
new const sHats[][][] = { {"","",0},
{"Dede Sapkasi","models/Xtreme/dede.mdl",100},
{"Suratsiz Sapkasi","models/Xtreme/suratsiz.mdl",100},
{"Inek Sapkasi","models/Xtreme/inek.mdl",200},
{"Palyaco Sapkasi","models/Xtreme/palyaco.mdl",300},
{"Kedi Sapkasi","models/Xtreme/kedi.mdl",400},
{"Korku Sapkasi","models/Xtreme/korku.mdl",700}
};
new iHatModels[sizeof(sHats)+1],iHatEnt[MAX_PLAYERS+1],iCoin[MAX_PLAYERS+1],g_Vault, g_iHat[MAX_PLAYERS+1];
public plugin_precache() {
for(new i=1; i < sizeof(sHats);i++)
iHatModels[i] = precache_model(sHats[i][1][0]);
}
public plugin_natives() {
register_native("nGetUserCoin","@NTV_CN");
}
@NTV_CN() {
new iJlayer = get_param(1);
return iCoin[iJlayer];
}
public plugin_cfg(){
g_Vault = nvault_open("sapka_coin")
if ( g_Vault == INVALID_HANDLE )
set_fail_state( "Dosya Bulunmamakta!" )
}
public plugin_init() {
register_plugin("Sapka Menü", "1.0", "PawNod'");
register_clcmd("say /sapka","@OpenHatMenu");
register_clcmd("say /hat","@OpenHatMenu");
register_concmd("amx_coinver", "clcmd_coinver");
}
public clcmd_coinver(const id)
{
if(~get_user_flags(id) & COINVER_YETKI)
{
return PLUGIN_HANDLED;
}
new szArg[32], iArg[32];
read_argv(1, szArg, charsmax(szArg));
read_argv(2, iArg, charsmax(iArg));
new iCost, pPlayer;
iCost = str_to_num(iArg);
pPlayer = find_player("bl", szArg);
if(!(iCost > 0))
{
client_print_color(id, print_team_red, "^3Miktari minimum^4 1^3 yapabilirsiniz.");
return PLUGIN_HANDLED;
}
if(szArg[0] == EOS){
client_print_color(id, print_team_red, "^3Oyuncu ismini bos birakamazsiniz.");
return PLUGIN_HANDLED;
}
else if(iArg[0] == EOS){
client_print_color(id, print_team_red, "^3Coin miktarini bos birakamazsiniz.");
return PLUGIN_HANDLED;
}
iCoin[pPlayer] += iCost;
return PLUGIN_HANDLED;
}
public plugin_end(){
nvault_close(g_Vault)
}
public client_disconnected(id){
VeriyiKaydet(id)
}
VeriyiKaydet(id){
new szAuth[33],szData[6];
get_user_authid(id , szAuth , charsmax(szAuth))
num_to_str(iCoin[id],szData,5);
nvault_pset(g_Vault,szAuth ,szData);
nvault_pset(g_Vault, fmt("%s-[Hat]", szAuth), fmt("%i", g_iHat[id]));
}
VeriyiYukle(id){
new szAuth[33];
get_user_authid(id , szAuth , charsmax(szAuth))
iCoin[id] = nvault_get(g_Vault,szAuth);
g_iHat[id] = nvault_get(g_Vault, fmt("%s-[Hat]", szAuth));
}
public client_putinserver(iPlayer) {
set_task(60.0*Kac_Dakikada_Bir,"@GiveCoin",iPlayer+779933);
VeriyiYukle(iPlayer);
@SetUserHat(iPlayer,g_iHat[iPlayer]);
}
@GiveCoin(const iTaskID) {
new iPlavyer = iTaskID-779933;
if(is_user_connected(iPlavyer)) {
iCoin[iPlavyer] += 10;
set_task(60.0*Kac_Dakikada_Bir,"@GiveCoin",iPlavyer+779933);
client_cmd(iPlavyer, "spk %s", "zombie_plague/xtr_win.wav");
client_print_color(iPlavyer, iPlavyer, "^1[^4%s^1] ^3Sunucuda ^4%i ^3saniye oynadiginiz icin^4 10 ^3Coin kazandiniz.",sTag,floatround(60.0*Kac_Dakikada_Bir))
}
}
@TakeDamage(const pVictim, const pInflictor, const pAttacker, Float:flDamage, bitsDamageType) {
if(!is_user_connected(pAttacker) || !rg_is_player_can_takedamage(pVictim, pAttacker) || pVictim == pAttacker) return;
iCoin[pAttacker] += random_num(1,5);
}
@OpenHatMenu(const iPlayer) {
new Menu = menu_create(fmt("\r[Xtreme] \y~> Sapka Menüsü \y~> \wSizdeki Coin: \r%i",iCoin[iPlayer]), "@OpenHatMenu_");
menu_additem(Menu,fmt("\r[\y%s\r] \d~> \wSapkayi \rCikar^n",sTag),"333");
for(new fMenu=1;fMenu<sizeof(sHats);fMenu++)
menu_additem(Menu,fmt("\r[\y%s\r] \d~> \w%s \d[\w%d \yCoin\d]", sTag,sHats[fMenu][0][0],sHats[fMenu][2][0]),fmt("%i",fMenu));
menu_setprop(Menu, MPROP_BACKNAME,"Önceki Sayfa"),menu_setprop(Menu, MPROP_NEXTNAME,"Sonraki Sayfa"),menu_setprop(Menu, MPROP_EXITNAME,"\wKapat");
menu_display(iPlayer, Menu);
client_cmd(iPlayer, "spk %s", "zombie_plague/xtr_menu_in.wav")
}
@OpenHatMenu_(const iPlayer,const iMenu, const iItem) {
if(iItem == MENU_EXIT) { menu_destroy(iMenu);return PLUGIN_HANDLED; }
new iData[6], iKey;
menu_item_getinfo(iMenu, iItem, _, iData, charsmax(iData));
iKey = str_to_num(iData);
if(iKey == 333) {
@SetUserHat(iPlayer,0);
menu_destroy(iMenu);return PLUGIN_HANDLED;
}
if(iCoin[iPlayer] >= sHats[iKey][2][0]) {
iCoin[iPlayer] -= sHats[iKey][2][0];
@SetUserHat(iPlayer,0),@SetUserHat(iPlayer,iKey), g_iHat[iPlayer] = iKey;
}
else client_print_color(iPlayer, iPlayer, "^1[^4%s^1] ^3Yeterli Coin bulunmuyor! Gereken: ^3%i ^4Coin",sTag,sHats[iKey][2][0]-iCoin[iPlayer]),@OpenHatMenu(iPlayer)
menu_destroy(iMenu);
client_cmd(iPlayer, "spk %s", "zombie_plague/xtr_menu_out.wav");
return PLUGIN_HANDLED;
}
@SetUserHat(const iPlayer, const iHatNum) {
switch(iHatNum) {
case 0: {
iHatEnt[iPlayer] > 0 ? rg_remove_entity(iHatEnt[iPlayer]):(iHatEnt[iPlayer] = 0);
}
default: {
iHatEnt[iPlayer] = rg_create_entity("info_target");
set_entvar(iHatEnt[iPlayer],var_movetype,MOVETYPE_FOLLOW);
set_entvar(iHatEnt[iPlayer],var_aiment,iPlayer);
set_entvar(iHatEnt[iPlayer],var_rendermode,kRenderNormal);
set_entvar(iHatEnt[iPlayer],var_modelindex,iHatModels[iHatNum]);
}
}
}
rg_remove_entity(const iEnt){
if(is_entity(iEnt))
set_entvar(iEnt,var_flags,FL_KILLME);
}