Jump to content
  • 0

pomoc Give Zbraně


Deejva

Dotaz

Ahoj, mam admin script a v něm příkaz /giveweapon. Kod:

 

dcmd_giveweapon(playerid,params[]) {
if(PlayerInfo[playerid][Level] >= 2) {
 new tmp[256], tmp2[256], tmp3[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index), tmp3 = strtok(params,Index);
 if(!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, red, "/Giveweapon [iD] [iD ZBRANĚ/JMÉNO ZBRANĚ] [POČET NÁBOJŮ]");
new player1 = strval(tmp), weap, ammo, WeapName[32], string[128];
if(!strlen(tmp3) || !IsNumeric(tmp3) || strval(tmp3) <= 0 || strval(tmp3) > 99999) ammo = 500; else ammo = strval(tmp3);
if(!IsNumeric(tmp2)) weap = GetWeaponIDFromName(tmp2); else weap = strval(tmp2);
 if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
 if(!IsValidWeapon(weap)) return SendClientMessage(playerid,red,"ERROR: Špatné ID zbraně!");
CMDMessageToAdmins(playerid,"GIVEWEAPON");
GetWeaponName(weap,WeapName,32);
format(string, sizeof(string), "Dal jsi hráči \"%s\" %s (%d) s %d náboji", PlayerName2(player1), WeapName, weap, ammo); SendClientMessage(playerid,blue,string);
if(player1 != playerid) { format(string,sizeof(string),"Administrátor \"%s\" ti dal %s (%d) s %d náboji", PlayerName2(playerid), WeapName, weap, ammo); SendClientMessage(player1,blue,string); }
return GivePlayerWeapon(player1, weap, ammo);
 } else return SendClientMessage(playerid,red,"ERROR: Tento hráč není připojen");
} else return SendClientMessage(playerid,red,"ERROR: Na tento příkaz nemáš dostatečný admin level");
}

 

A já bych to potřeboval přes tabulku, takže by se napsalo /giveweapon [iD] a zobrazila by se tabulka, tam by byli všechny zbraně od tec9 po minigun. A po tom co byh vybral zbraň, by se zobrazil další dialog, ve kterym bych zadal počet nábojů :d umí toto někdo udělat ? :d

 

potřeboval bych to přes dcmd, takže nějak takto ?

dcmd_giveweapon(playerid,params[])
if(PlayerInfo[playerid][Level] >= 2) {
{
ShowPlayerDialog(playerid, 80000, DIALOG_STYLE_LIST, "New Warpy:", "Tec9 \nRaketomet/nMinigun ", "OK", "Zavrit");
return 1;
}

 

A pak v dialog response že když dialog id = blabla a listitem = 0, tak další show dialog ? a jak tam pak vložim aby to co vloží, aby byl počet nábojů ? :o:d

Díky za odpověd ;)

 

Kdo umí, prosim o ukázku givu 2 zbraní :d :d

Link to comment
Share on other sites

9 odpovědí na tuto otázku

Recommended Posts

  • 0
  • Administrátor

co je na tom do listu si vypíšeš zbraně a pak je a id uožíš do proměný a pak to i snábojema givneš

Link to comment
Share on other sites

  • 0

#define DIALOG_ID_4 311
#define DIALOG_ID_5 322

 

dcmd_weapon(playerid,params[]){
if(PlayerInfo[playerid][Level] < 2) return SendClientMessage(playerid,red,"Nejsi admin");
if(!strlen(params)) return SendClientMessage(playerid,red,"/Weapon [iD]");
new id = strval(params); //vytvorime si premenu id a nastavime jej hodnotu "strval(params)" strval prevedie string (text) na integer (číslo) takže z npr. "47" to spravi 47
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,red,"/Toto ID není online");
SetPVarInt(playerid,"AdminWeaponID",id); // Uložíme si id hráča, ktorému chceme dať zbraň, do premeny pre následné správne givnutie v dialógu
ShowPlayerDialog(playerid,DIALOG_ID_4, DIALOG_STYLE_LIST, "Give Weapon", "Tec9 \nRaketomet\nMinigun ", "OK", "Zavrit"); // tam "DIALOG_ID_4" si daj čislo alebo define...
return 1;
}

 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_ID_4){
if(response){
if(listitem == 0){// Tec9
SetPVarInt(playerid,"AdminWeapon",32); // Do premeny si uložíme id zbrane (z wiki.sa-mp.com/wiki/Weapons
ShowPlayerDialog(playerid,DIALOG_ID_5,1,"Naboje","Zadaj naboje","Ok","Zrusit"); //dialog.. .zase si zmen DIALOG_ID_5 na define/cislo
}
else if(listitem == 1){// Raketomet
SetPVarInt(playerid,"AdminWeapon",32); // Do premeny si uložíme id zbrane (z wiki.sa-mp.com/wiki/Weapons
ShowPlayerDialog(playerid,DIALOG_ID_5,1,"Naboje","Zadaj naboje","Ok","Zrusit"); //dialog.. .zase si zmen DIALOG_ID_5 na define/cislo

}
else if(listitem == 2){// Minigun

SetPVarInt(playerid,"AdminWeapon",32); // Do premeny si uložíme id zbrane (z wiki.sa-mp.com/wiki/Weapons
ShowPlayerDialog(playerid,DIALOG_ID_5,1,"Naboje","Zadaj naboje","Ok","Zrusit"); //dialog.. .zase si zmen DIALOG_ID_5 na define/cislo
}
}
}
if(dialogid == DIALOG_ID_5){
if(response){
if(!inputtext[0]) return ShowPlayerDialog(playerid,DIALOG_ID_5,1,"Naboje","Zadaj naboje","Ok","Zrusit"); //Ten morgoš nezadal string
new ammo = strval(inputtext);
if(ammo < 0) return ShowPlayerDialog(playerid,DIALOG_ID_5,1,"Naboje","Zadaj naboje","Ok","Zrusit"); //Morgoš sa snaží s nami vybabrať
new HracID = GetPVarInt(playerid,"AdminWeaponID"); // Vytvoríme si premenú "HracID" a nastavíme jej hodnotu z uloženej premeny (ukladali sme pri príkaze)
new weapon = GetPVarInt(playerid,"AdminWeapon"); //vytvoríme si premenu "weapon" a nastavíme jej hodnotu z uloženej premeny (pri dialógu)
GivePlayerWeapon(HracID,weapon,ammo);
// a tu môžeš správičku pridať
}
}
return true;
}

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...