mach doch sofort
ocmd:makeleader(playerid,params[])
{
new pid, frakid;
if(sscanf(params,"ud",pid,frakid))return SendClientMessage(playerid,Gelb,"Verwendung : /makeleader [ID] [Fraktions ID]");
if(frakid > 24)return SendClientMessage(playerid,Rot,"Soviele Fraktionen gibt es nicht!");
if(!IstSpielerAdmin(playerid, 5))return SendClientMessage(playerid,Rot,"Du bist kein Administrator!");
if(pid == INVALID_PLAYER_ID)return SendClientMessage(playerid,Rot,"Ungültiger Spieler!");
if(IstSpielerInFraktion(pid,frakid) == frakid)
{
sSpieler[pid][Fraktion] = frakid;
SendClientMessage(pid,Gelb,"Du bist nun in einer Fraktion!");
SendClientMessage(pid,Gelb,"Du hast den angegeben Spieler in eine Fraktion gepackt!");
}
return 1;
}
Beiträge von SylpheedW
-
-
ich versuche gerade ein haus system
aber ich weiß nicht wie ich den namen speichern soll
hier alles
#define MAX_HOUSES 1//Haus enum
enum Haus
{
infox,
infoy,
infoz,
hx,
hy,
hz,
int,
preis,
besitzer
};new h[MAX_HOUSES][Haus];
//Haus h=datenpublic OnGameModeExit()
{
SaveHouse();
return 1;
}if(strcmp(cmdtext,"/haus",true) == 0)
{
new n[MAX_PLAYER_NAME];
GetPlayerName(playerid, n, sizeof(n));
new s[128];
format(s, sizeof(s), "%s",n);
h[0][besitzer]=s;
return 1;
}stock SaveHouse()
{
for(new o; o<MAX_HOUSES; o++)
{
new dat[64];
format(dat,sizeof(dat),"/House/%d.enumdat",o);
printf("Save House %d to %s", o, dat);
if(!dini_Exists(dat))
{
dini_Create(dat);
}
dini_FloatSet(dat, "x", h[o][hx]);
dini_FloatSet(dat, "y", h[o][hy]);
dini_FloatSet(dat, "z", h[o][hz]);
dini_FloatSet(dat, "infox", h[o][infox]);
dini_FloatSet(dat, "infoy", h[o][infoy]);
dini_FloatSet(dat, "infoz", h[o][infoz]);
dini_IntSet(dat, "int", h[o][int]);
dini_IntSet(dat, "preis", h[o][preis]);
dini_Set(dat, "Besitzer", h[o][besitzer]);
}
return 1;
}
aber wie speichert mann den namen
MFG Piet -
der job wird bei dir immer als 1 gespeihert
hast du gemacht mit
dini_IntSet(Spieler,"Job",1);//die 1 setzt es auf eins
//mach doch als PVar
dini_IntSet(Spieler,"Job",GetPVarInt(playerid, "Job"));//die 1 setzt es auf eins -
welche version benutzt du denn
du brauchst dafür 0.3d//edit habe fehler gefunden
hier die neue version
//Ein Tazer Script für FabiX von Piet_Meier
//mit 15sek Tazer
//15 sek anti schuss
//und AntiTazerHack
#include <a_samp>
#define F 0xFFFFFFFF
#define BULLE 3//hier deine Bullen Fraktions id einfügen#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\nTazer Special by Piet_Meier\n");
SetTimer("AntiHack", 1000, 1);
return 1;
}public OnFilterScriptExit()
{
return 1;
}#endif
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/tazer", cmdtext, true) == 0)
{
if(!isPlayerInFrakt(playerid, BULLE))return SendClientMessage(playerid, F, "Du bist kein Bulle");
if(GetPVarInt(playerid, "Waffehabe")==1)return SendClientMessage(playerid, F, "Warte 15 sek");
GivePlayerWeapon(playerid, 23, 1);
SetPVarInt(playerid, "Tizer", 1);
return 1;
}
return 0;
}public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
if(issuerid!=INVALID_PLAYER_ID)//ist der betroffende nicht du
{
if(weaponid==23)//welche waffe also jetzt die 23 Silencer
{
if(isPlayerInFrakt(playerid, BULLE))//Deine Fraktionsvariable hier eintragen
{
if(GetPVarInt(playerid, "Tizer")==1)
{
TazerTake(playerid, issuerid);//gehe zu stock TazerTake
}
}
}
}
return 1;
}public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys==KEY_FIRE)
{
if(GetPVarInt(playerid, "Tizer")==1)
{
SetPVarInt(playerid, "Tizer", 0);
SetTimerEx("Waffe", 15000, 0, "i", playerid);
}
}
return 1;
}forward Waffe(i);
public Waffe(i)
{
SetPVarInt(i, "Tizer", 1);
GivePlayerWeapon(i, 23, 1);
SetPVarInt(i, "Waffehabe", 0);
return 1;
}forward AntiHack();
public AntiHack()
{
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
if(GetPVarInt(i, "Tazered")==1)
{
TogglePlayerControllable(i, 0);
}
}
}
return 1;
}stock TazerTake(playerid, id)//hier der TazerTake Stock
{
new P[128], T[128];
format(P, 128, "Du Tazerst %s für 15 sek", SpielerName(id));
format(T, 128, "%s Tazert dich für 15 sek", SpielerName(playerid));
SendClientMessage(playerid, F, P);
SendClientMessage(id, F, T);
SetPVarInt(id, "Tazered", 1);
TogglePlayerControllable(id, 0);
SetTimerEx("Tazer", 15000, 0, "i", id);
return 1;
}forward Tazer(i);
public Tazer(i)
{
SetPVarInt(i, "Tazered", 0);
TogglePlayerControllable(i, 1);
return 1;
}stock SpielerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}stock isPlayerInFrakt(playerid,fraktid)
{
if(GetPVarInt(playerid,"Fraktion")==fraktid)return 1;
return 0;
} -
hier habe ich nicht getestet hoffentlich geht es
//Ein Tazer Script für FabiX von Piet
//mit 15sek Tazer
//15 sek anti schuss
//und AntiTazerHack
#include <a_samp>
#define F 0xFFFFFFFF
#define BULLE 3//hier deine Bullen Fraktions id einfügen#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\nTazer Special by Piet_Meier\n");
SetTimer("AntiHack", 1000, 1);
return 1;
}public OnFilterScriptExit()
{
return 1;
}#endif
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/tazer", cmdtext, true) == 0)
{
if(!isPlayerInFrakt(playerid, BULLE))return SendClientMessage(playerid, F, "Du bist kein Bulle");
GivePlayerWeapon(playerid, 23, 1);
SetPVarInt(playerid, "Tizer", 1);
return 1;
}
return 0;
}public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
if(issuerid!=INVALID_PLAYER_ID)//ist der betroffende nicht du
{
if(weaponid==23)//welche waffe also jetzt die 23 Silencer
{
if(isPlayerInFrakt(playerid, BULLE))//Deine Fraktionsvariable hier eintragen
{
TazerTake(playerid, issuerid);//gehe zu stock TazerTake
}
}
}
return 1;
}public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys==KEY_FIRE)
{
if(GetPVarInt(playerid, "Tizer")==1)
{
SetPVarInt(playerid, "Tizer", 0);
SetTimer("Waffe", 15000, 0);
}
}
return 1;
}forward Waffe(playerid);
public Waffe(playerid)
{
SetPVarInt(playerid, "Tizer", 1);
GivePlayerWeapon(playerid, 23, 1);
return 1;
}forward AntiHack();
public AntiHack()
{
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
if(GetPVarInt(i, "Tazered")==1)
{
TogglePlayerControllable(i, 0);
}
}
}
return 1;
}stock TazerTake(playerid, id)//hier der TazerTake Stock
{
new P[128], T[128];
format(P, 128, "Du Tazerst %s für 15 sek", SpielerName(id));
format(T, 128, "%s Tazert dich für 15 sek", SpielerName(playerid));
SendClientMessage(playerid, F, P);
SendClientMessage(id, F, T);
SetPVarInt(id, "Tazered", 1);
TogglePlayerControllable(id, 0);
SetTimerEx("Tazer", 15000, 0, "i", id);
return 1;
}forward Tazer(i);
public Tazer(i)
{
SetPVarInt(i, "Tazered", 0);
TogglePlayerControllable(i, 1);
return 1;
}stock SpielerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}stock isPlayerInFrakt(playerid,fraktid)
{
if(GetPVarInt(playerid,"Fraktion")==fraktid)return 1;
return 0;
}MFG Piet
-
wie lange soll der betrofende getazert werden
-
mache ich gerade schon
-
ja
aber das ist ziemlich kompliziert -
ich verstehe nicht alles mit dem zusammenghang
meinst du das mann eine SD Pistol bekommt für 15sek
und dannn im zeit limit einen tazer kann -
nein wenn mann einen trifft mit der sd pistole wird er gettazert
aber das mit dem tazer musste noch reine machen unter dem Stock Tazer(id) -
sowas vielleicht
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
{
if(issuerid!=INVALID_PLAYER_ID)
{
if(weaponid==23)
{
if(isPlayerInFrakt(playerid, Polizist))
{
Tazer(issuerid);}
}
}
return 1;
}stock Tazer(id)
{
return 1;
} -
ne den fehler habe ich gefunden die textdraw habe ich mit dem BSN editor Online gemacht un der ist dort gut in der ecke aber im bild zu weit außen
habe ich jetzt die textdraw wo anders gpackt und es geht
bitte -closen- -
tja und da ist das problem
der dialog wird der pID angezeigt und im Dialog response exestiert der playerid als pID und nicht der richtige medic -
das geht aber nicht
da muss der playerid in den pID dialog eingebunden werden -
ich habe ein /heal befehl aber ich wollte es machen mit geld und diolog zum akzeptieren
ocmd:heal(playerid,params[])
{
if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Medic Mitglied.");
new pID;
new Float:PX, Float:PY, Float:PZ;
GetPlayerPos(pID, PX, PY, PZ);
if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"/heal [spieler]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Spieler ist nicht Online.");
if(!IsPlayerInRangeOfPoint(playerid, 1.5, PX, PY, PZ))return SendClientMessage(playerid,ROT,"Spieler ist nicht in deiner nähe.");
Heal(playerid, pID);
return 1;
}stock Heal(playerid, pID)
{
new String1[128], String2[128];
new aname[MAX_PLAYER_NAME];
new newname[MAX_PLAYER_NAME];
GetPlayerName(playerid,aname,sizeof(aname));
GetPlayerName(pID,newname,sizeof(newname));
SetPlayerHealth(playerid, 100.0);
format(String1, sizeof(String1), "Medic %s heilt dich", aname, newname);
format(String2, sizeof(String2), "Du heilst %s", newname);
SendClientMessage(pID, WARN, String1);
SendClientMessage(playerid, WARN, String2);
return 1;
}
aber wie mache ich das mit dem dialog(also der dialog ist nicht das problem aber das der medic das geld bekommt -
mache ich ja aber der Textdraw wird nicht angezeigt
es wird ja nen tacho aber er wird nicht angezeigt habe ihn auch schon fertig gemacht
also der Tacho müsste gehen habe es mit SendClientMessage getestet da kommt immer die KMH
aber er zeigt die Textdraw nicht an -
habe es so gemacht geht aber trozdem nicht
public OnPlayerConnect(playerid)
{
TXT[playerid] = TextDrawCreate(500 ,439 , "Km/h:---");
TextDrawFont(TXT[playerid] , 1);
TextDrawLetterSize(TXT[playerid] , 0.9, 6.3);
TextDrawColor(TXT[playerid] , 0x000000FF);
TextDrawSetOutline(TXT[playerid] , false);
TextDrawSetProportional(TXT[playerid] , true);
TextDrawSetShadow(TXT[playerid] , 1);
return 1;
}public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/txt", cmdtext, true, 10) == 0)
{
// Do something here
TextDrawShowForPlayer(playerid, TXT[playerid]);
return 1;
}
return 0;
} -
ich hbae es so gemacht das das nur im auto angezeigt wird
das ist auch beabsichtetaber da liegt ja das problem der textdraw wird nicht angezeigt ob timer oder befehf oder im auto sein
-
nein ich habe erst den roh mit dem ins auto steigen tacho ist es eig noch nicht eig
sollte unten im bild Km/h:--- angezeigt werden mehr nicht
es ist biss jetzt nur der textdraw den tacho mache ich gerade aber er zeigt nichtmal den roh tacho an -
ja den FunC mache gerade ein bisschen weiter mit position und so
aber wenn er nicht mal den roh textdraw anzeigt