hast du eigene pickups gesetzt?
wenn ja schau dir mal das hier an:
http://wiki.sa-mp.com/wiki/PickupTypes
Beiträge von Tround
-
-
-
ApplyAnimation(playerid, "FOOD", "EAT_Burger", 4.1, 0, 1, 1, 1, 1, 1);
die zweite zahl steht für den loop
zitat ausm wiki:
loopSet to 1 for looping otherwise set to 0 for playing animation sequence only once.nach der animation bleibt der arm angewinkelt.. das geht auch erst weg wenn man schlägt ö.ä.
ist aber nicht so schlimm find ich.für andere animationen wo man danach nicht mehr laufen kann, könnte man das hier vlcht mit einem timer verwenden:
ClearAnimations(playerid);
hab ich aber selbst noch nicht getestet^^ -
so vlcht:
stock Login(playerid,key[])
{
new Spielerdatei[64];
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",SpielerName(playerid));
if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),true))
{
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
SendClientMessage(playerid,blau,"Du hast dich erfolgreich eingeloggt.");
Spielerlogin[playerid] = 0;
return 1;
}
else
{
Spielerlogin[playerid] = 1; // das hier haste vergessen
if(Spielerlogin[playerid] == 1)
{
SendClientMessage(playerid,blau,"Du hast ein falsches Passwort eingegeben. Du hast noch zwei weitere Versuche!");
Spielerlogin[playerid] = 2;
}
if(Spielerlogin[playerid] == 2)
{
SendClientMessage(playerid,blau,"Du hast ein falsches Passwort eingegeben. Du hast noch einen Versuch!");
Spielerlogin[playerid] = 3;
}
if(Spielerlogin[playerid] == 3)
{
SendClientMessage(playerid,blau,"Du hast dreimal ein falsches Passwort eingegeben. Du wurdest vom Server gekickt!");
Kick(playerid);
}
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte dein Passwort ein.","Login","Abbrechen");
return 1;
}
} -
habe eben noch editiert hatte was vergessen.. schon das hier drin?
#define ADMIN_SPEC_TYPE_NONE 0
#define ADMIN_SPEC_TYPE_PLAYER 1
#define ADMIN_SPEC_TYPE_VEHICLE 2und für die death cam irgendwie sowas:
public OnPlayerDeath(playerid, killerid, reason)
{
if(IsPlayerConnected(playerid))
{
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, killerid);
SetTimer("spec",10000,1);
}
return 1;
} -
ganz oben:
new SpectateID[MAX_PLAYERS];
new SpectateType[MAX_PLAYERS];#define ADMIN_SPEC_TYPE_NONE 0
#define ADMIN_SPEC_TYPE_PLAYER 1
#define ADMIN_SPEC_TYPE_VEHICLE 2
unten:
ocmd:specs(playerid,params[])
{
if(IsPlayerConnected(playerid))
{
new pID;
if(!isPlayerAnAdmin(playerid,4)) return SendClientMessage(playerid,ROT,"Dein Admin Level ist nicht hoch genug!");
if(sscanf(params,"u",pID)) return SendClientMessage(playerid,BLAU,"Info: /specs [Spieler ID]");
if(IsPlayerConnected(pID))
{
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, pID);
SetPlayerInterior(playerid,GetPlayerInterior(pID));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(pID));
SpectateID[playerid] = pID;
SpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER;
}
else
{
SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht auf dem Server!");
}
}
return 1;
}ocmd:specf(playerid,params[])
{
if(IsPlayerConnected(playerid))
{
new vehicle;
if(!isPlayerAnAdmin(playerid,4)) return SendClientMessage(playerid,ROT,"Dein Admin Level ist nicht hoch genug!");
if(sscanf(params,"i",vehicle)) return SendClientMessage(playerid,BLAU,"Info: /specf [Fahrzeug ID]");
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, vehicle);
SpectateID[playerid] = vehicle;
SpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE;
}
return 1;
}ocmd:specaus(playerid,params[])
{
if(IsPlayerConnected(playerid))
{
TogglePlayerSpectating(playerid, 0);
SpectateID[playerid] = INVALID_PLAYER_ID;
SpectateType[playerid] = ADMIN_SPEC_TYPE_NONE;
}
return 1;
} -
wie viele timer sind drin?
hast du isplayerconnected in deine befehle mit eingebaut?
hast du viele schleifen? -
das kannste mit einer for schleife machen
ocmd:rep(playerid,params[])
{
if(IsPlayerConnected(playerid))
{
new rep[128];
if(sscanf(params,"s",rep)) return SendClientMessage(playerid,BLAU,"Info: /rep [text]");
format(rep,sizeof(rep),"Report von: %s: %s",SpielerName(playerid),rep);
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
{
if(GetPVarInt(i,"AdminLevel")!=0)
{
SendClientMessage(i,HELLROT,rep);
}
}
}
SendClientMessage(playerid,HELLROT,"Report erfolgreich gesendet!");
}
return 1;
} -
würde mich auch mal interesieren
-
public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid, reason);
return 1;
}
also ich habe das grad nochmal getestet das funktioniert. -
if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,BLAU,"Info: /kick [id] [grund]");
meine zeile sieht eigtl gleich aus und bei mir klappts -
kk, probiere ich dann aus
Weiß einer wie ich Rechts sowas einbauen kann, das man sieht welcher Spieler von welchen Killer mit der Waffen getötet hat?
Habs mit SendDeathMessage(killerid, playerid, reason); probiert geht aber nicht .. Bitte hilft mir
-
Ich möchte ein einzigen Befehl haben, z.B
/v carid
oder /v Autonamen
geht das auch?
ocmd:fahrzeug(playerid,params[])
{
if(IsPlayerConnected(playerid))
{
new modelid,Farbe1,Farbe2;
new fahrzeug1[128];
if(sscanf(params,"ddd",modelid,Farbe1,Farbe2))return SendClientMessage(playerid,BLAU,"Info: /fahrzeug [Model-ID] [Farbe1] [Farbe2]");
if(modelid < 400 || modelid > 611)return SendClientMessage(playerid,ROT,"Ungültige Model-ID! Model[400-611]");
if(Farbe1 < 0 || Farbe1 > 186)return SendClientMessage(playerid,ROT,"Ungültige Farb-ID! Farben[0-186]");
if(Farbe2 < 0 || Farbe2 > 186)return SendClientMessage(playerid,ROT,"Ungültige Farb-ID! Farben[0-186]");
new Float:pos[3];
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
new createdcarid = CreateVehicle(modelid,pos[0]+1,pos[1]+1,pos[2],0,Farbe1,Farbe2,-1);
format(fahrzeug1,sizeof(fahrzeug1),"Du hast dir ein Fahrzeug mit der ID %d gespawnt!",(createdcarid));
SendClientMessage(playerid,HELLROT,fahrzeug1);
}
return 1;
} -
bei mir sieht das so aus:
stock SpielerSpeichern(playerid)
{
if(IsPlayerConnected(playerid))
{
dini_IntSet(Spielerdatei,"Punkte",GetPVarInt(playerid,"Punkte"));
}
return 1;
}
mit dem playerinfo zeugs kenn ich mich nicht aus da kann ich nicht helfen -
ist aus meinem script rauskopiert.. musst halt auf dein script anpassen.
ocmd:punkte(playerid,params[])
{
if(IsPlayerConnected(playerid))
{
if(GetPVarInt(playerid,"Fraktion")==1)
{
new pID,punkte;
if(sscanf(params,"ui",pID,punkte)) return SendClientMessage(playerid,BLAU,"Info: /punkte [ID] [Anzahl]");
if(pID==playerid) return SendClientMessage(playerid,ROT,"Du kannst dir nicht selber Punkte geben!");
if(punkte<1||punkte>3) return SendClientMessage(playerid,ROT,"Ungültige Punkteanzahl! [1-3]");
if(IsPlayerConnected(pID))
{
new Float:px,Float:py,Float:pz;
GetPlayerPos(pID,px,py,pz);
if(IsPlayerInRangeOfPoint(playerid,10,px,py,pz))
{
new punkt=GetPVarInt(pID,"Punkte");
SetPVarInt(pID,"Punkte",punkt+punkte);
SpielerSpeichern(pID);
new punkt1[128],punkt2[128],punkt3[128],punkt4[128];
format(punkt1,sizeof(punkt1),"Du hast %s, %i Punkt(e) gegeben!",SpielerName(pID),punkte);
SendClientMessage(playerid,ORANGE,punkt1);
format(punkt2,sizeof(punkt2),"Du hast von %s, %i Punkt(e) bekommen!",SpielerName(playerid),punkte);
SendClientMessage(pID,ORANGE,punkt2);
format(punkt3,sizeof(punkt3),"Du hast nun %i Punkt(e) insgesamt!",GetPVarInt(pID,"Punkte"));
SendClientMessage(pID,ORANGE,punkt3);
format(punkt4,sizeof(punkt4),"%s hat nun %i Punkt(e) insgesamt!",SpielerName(pID),GetPVarInt(pID,"Punkte"));
SendClientMessage(playerid,ORANGE,punkt4);
}
else
{
SendClientMessage(playerid,ROT,"Dieser Spieler befindet sich nicht in deiner Nähe!");
}
}
else
{
SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht auf dem Server!");
}
}
else
{
SendClientMessage(playerid,ROT,"Du bist kein LSPD Angestellter!");
}
}
return 1;
}mir ist bewusst das man noch zeilen hätte sparen können.. aber egal..
-
genau danach habe ich gesucht
danke für deine antwort -
Moin
Ich habe ein kleines problem in meinem selfmade script und ich hoffe, dass mir jemand helfen kann.
ich habe dieses problem erst gestern rausgefunden und bin total planlos, wie ich diesen bug beheben soll.
es geht um ein paar floats. ich versuche mal zu erklären^^
ich habe z.B. einen /mark und einen /gotomark befehel eingebaut. die koordinaten werden in einem float abgespeichert.
jetzt ist es aber so, dass wenn spieler 1 /mark macht und damit seine koordinaten speichert,.. spieler 2 nicht seinen eigenen float bekommt sondern den float von spieler 1 überschreibt.
also: Spieler 1 macht /mark.. Spieler 2 macht /gotomark und geht zu den koordinaten die spieler 1 gespeichert hat.
jetzt frag ich mich ob es eine möglichkeit gibt auszulesen ob der float bereits besetzt ist und dann einen neuen float erstellt.
hoffe jemand kennt eine antwort.
danke im voraus.