Im Tutorial hab' ich mit InterpolateCameraPos "gearbeitet". Mein Problem ist:
Ich hab' ne neue Stadt/Insel gemappt, dort werden die Objekte aber nicht geladen/angezeigt. Ebenfalls werden die Fahrzeuge nicht angezeigt(das ist eigentlich egal)...
Beiträge von Quetai
-
-
Ich werde 2x geblitzt...Woran liegt das?
Und der Beifahrer wird auch geblitzt und zahlt auch...wie kann ich das beheben? -
Okay, gut.
Eins noch. Ich will, dass der Spieler nur maximal 69 Wantedpunkte haben kann...ich hab's versucht, zwar kam die Fehlermeldung, dass der Spieler nur so und soviele Wantedpunkte haben kann, aber er erhielt trotzdem immer wieder die Wantedpunkte...
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GREY, "Benutzung: /su [Playerid/Name] [Wantedpunkte] [Verbrechen]");
return 1;
}
if(WantedAnzahl < 1 || WantedAnzahl > 69)
{
SendClientMessage(playerid, COLOR_GREY, "Du kannst mindestens 1 Wantedpunkt und maximal 69 Wantedpunkte vergeben!");
return 1;
}
else
{
WantedLevel[giveplayerid] += WantedAnzahl/10;
WantedPoints[giveplayerid] += WantedAnzahl;
PlayerInfo[playerid][pCrimes] += 1;
format(string, sizeof(string), "Du hast ein Verbrechen begangen (%s). Reporter: %s.",result,sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTRED, string);
format(string, sizeof(string), "Aktuelles Wantedlevel: %d", WantedLevel[giveplayerid]);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
format(string, sizeof(string), "Aktuelle Wantedpunkte: %d", WantedPoints[giveplayerid]);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
}
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsACop(i))
{
SendClientMessage(i, COLOR_LIGHTRED, string);
format(string, sizeof(string), "Verbrechen: %s | Wantedlevel des Verbrechers: %d",result, WantedLevel[giveplayerid]);
SendClientMessage(i, COLOR_LIGHTRED, string);
}
}
return 1; -
if(strcmp(cmd, "/arrestALC", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pTot] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "Tote können keine Befehle benutzen!");
return 1;
}
if(gTeam[playerid] == 2)
{
if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "Du bist nicht im Dienst!");
return 1;
}
if(!IsPlayerInRangeOfPoint(playerid,20.0, 1804.5670,-1580.3859,13.4552))
{// Jail spot
SendClientMessage(playerid, COLOR_GREY, "Sie sind nicht in der Nähe vom HSG!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Benutzung: /arrest [Preis] [Zeit (Minuten)] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
return 1;
}
moneys = strval(tmp);
if(moneys < 1 || moneys > 100000) { SendClientMessage(playerid, COLOR_GREY, "Der Gefängnispreis darf nicht unter $1 oder über $100000 liegen!"); return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Benutzung: /arrestALC [Preis] [Zeit (Minuten)] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
return 1;
}
new time = strval(tmp);
if(time < 1 || time > 60) { SendClientMessage(playerid, COLOR_GREY, "Die Minuten der Haftzeit dürfen nicht unter 1 oder über 60 Minuten liegen!"); return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Benutzung: /arrestALC [Preis] [Zeit (Minuten)] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
return 1;
}
new bail = strval(tmp);
if(bail < 0 || bail > 0) { SendClientMessage(playerid, COLOR_GREY, "Keine_Kaution"); return 1; }
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Benutzung: /arrestALC [Preis] [Zeit (Minuten)] [Kaution (0=Nein 1=Ja)] [Kautionspreis]");
return 1;
}
new bailprice = strval(tmp);
if(bailprice < 0 || bailprice > 50000000) { SendClientMessage(playerid, COLOR_GREY, "Sie können nicht mehr als 5 Millionen einstellen!!"); return 1; }
new suspect = GetClosestPlayer(playerid);
if(IsACop(suspect))
{
SendClientMessage(playerid, COLOR_GREY, "Du kannst keinen Beamten einsperren!");
return 1;
}
if(IsPlayerConnected(suspect))
{
if(GetDistanceBetweenPlayers(playerid,suspect) < 30)
{
GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
if(WantedLevel[suspect] < 5)
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat nicht 6 oder mehr Wanteds!");
return 1;
}
GivePlayerMoney(playerid, moneys);
format(string, sizeof(string), "* Du hast %s für $%d eingesperrt!", giveplayer, moneys);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
GivePlayerMoney(suspect, -moneys);
format(string, sizeof(string), "Eingesperrt von %s ~n~ für $%d", sendername, moneys);
GameTextForPlayer(suspect, string, 5000, 5);
ResetPlayerWeapons(suspect);
SetPlayerSpawn(suspect);
if(PlayerInfo[playerid][pMember]==1||PlayerInfo[playerid][pLeader]==1||PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
{
format(string, sizeof(string), "<< Officer %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
}
else if(PlayerInfo[playerid][pMember]==2||PlayerInfo[playerid][pLeader]==2)
{
format(string, sizeof(string), "<< Officer %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
}
else if(PlayerInfo[playerid][pMember]==3||PlayerInfo[playerid][pLeader]==3)
{
format(string, sizeof(string), "<< Soldat %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
}
else if(PlayerInfo[playerid][pMember]==21||PlayerInfo[playerid][pLeader]==21)
{
format(string, sizeof(string), "<< Fbi Agent %s hat den Verdächtigen %s eingesperrt >>", sendername, giveplayer);
OOCNews(COLOR_LIGHTRED, string);
}
SetPlayerInterior(suspect, 3);
SetPlayerPos(suspect,197.7353,176.2541,1003.0234);
PlayerInfo[suspect][pJailTime] = time * 60;
if(bail == 1)
{
JailPrice[suspect] = bailprice;
format(string, sizeof(string), "Du bist für %d Sekunden eingesperrt. Kaution: $%d", PlayerInfo[suspect][pJailTime], JailPrice[suspect]);
SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
}
else
{
JailPrice[suspect] = 0;
format(string, sizeof(string), "Du bist für %d Sekunden eingesperrt. Kaution: nicht möglich", PlayerInfo[suspect][pJailTime]);
SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
}
PlayerInfo[suspect][pJailed] = 1;
PlayerInfo[suspect][pArrested] += 1;
SetPlayerFree(suspect,playerid, "Festgenommen!");
WantedPoints[suspect] = 0;
WantedLevel[suspect] = 0;
WantLawyer[suspect] = 1;
SetPlayerSpawn(suspect);
}//distance
}//not connected
else
{
SendClientMessage(playerid, COLOR_GREY, "Es ist kein gesuchter in ihrer Nähe.");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Sie sind kein Staatsbeamter!");
return 1;
}
}//not connected
return 1;
}
Wie schaff ich dieses"Preis, Kaution...etc" wegzukriegen? Halt man soll einfach /arrestalc [id] und, wenn die Person in der Nähe ist wird er eingesperrt. -
-
Ich habs grad getestet...Wenn ich jemanden mit dem Auto töte, bzw Fahrerflucht begehe, werd' ich gekickt. Wegen dem M_Bot glaub' ich, aufjedenfall ist der Grund, dass ich gekickt werde, dass ich angeblich Drive-By mache...Kann man irgendwie ändern?
-
Wantedpunkte^^
-
Code
Alles anzeigennew str[256]; new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, MAX_PLAYER_NAME); if(reason == 0) { format(str, sizeof(str), "%s hat den Server verlassen (Timeout/Crash).", name); ProxDetector(30.0, playerid, str, COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY); } else if(reason == 1) { format(str, sizeof(str), "%s hat den Server verlassen (Offline/Task Manager).", name); ProxDetector(30.0, playerid, str, COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY); } else if(reason == 2) { format(str, sizeof(str), "%s hat den Server verlassen (Ban/Kick).",name); ProxDetector(30.0, playerid, str, COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY,COLOR_GREY); }
So hab' ich das.
Hatte früher auch Probleme damit. -
Code
Alles anzeigenif(victimteam >= 4) { if(IsPlayerConnected(killerid)) { new slice = 100; //$100 playercash = GetPlayerMoney(playerid); if(gTeam[killerid] != 2 && PlayerInfo[killerid][pMember] != 7) { WantedPoints[killerid] += 0; } //+ 2 wanted points if(SafeTime[playerid] <= 0) { if(gTeam[killerid] != gTeam[playerid]) { if(GetPlayerState(killerid) == 1) { PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] +1; } else { PlayerInfo[killerid][pKills]++; } } } if (((gTeam[killerid]) == 1) || ((gTeam[killerid]) == 3 && civnokill) || (gTeam[killerid] == gTeam[playerid] && gTeam[playerid] != 4)) { slice = 0; } if (((gTeam[killerid]) != 4) && ((gTeam[killerid]) == gTeam[playerid]))//no team kill { slice = 0; } if (playercash > 0) { GivePlayerMoney(playerid, -slice); } else { slice = slice+500; } GivePlayerMoney(killerid, slice); PlayerInfo[playerid][pCrimes] += 1; PlayerPlaySound(killerid, 1083, 0.0, 0.0, 0.0); if (((gTeam[killerid]) == 3) && reason != 49) { SetPlayerCriminal(killerid,255, "Vorsätzlicher Mord"); } else if (((gTeam[killerid]) == 3) && reason == 49) { SetPlayerCriminal(killerid,255, "Fahrerflucht"); } } } else if (victimteam == 2) { if(IsPlayerConnected(killerid)) { // Cop kill if (gTeam[killerid] == 2)//cops kill cop { PlayerInfo[playerid][pCrimes] += 1; PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0); GivePlayerMoney(killerid, -suecost); GivePlayerMoney(playerid, suecost+100);//+100pays hospital bill } if (gTeam[killerid] >= 3) { if(reason != 49) { SetPlayerCriminal(killerid,255, "Vorsätzlicher Mord"); } else if (reason == 49) { SetPlayerCriminal(killerid,255, "Fahrerflucht"); } } if(gTeam[killerid] >= 5 && SafeTime[playerid] <= 0) { if(GetPlayerState(killerid) == 1) { PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills]+1; } else { PlayerInfo[killerid][pKills]++; } } } } else if (victimteam == 3) { if(IsPlayerConnected(killerid)) { // Civ kill if ((gTeam[killerid]) == 2 || PlayerInfo[killerid][pMember] == 7)//cops kill civ { if(WantedLevel[playerid] < 1) { PlayerInfo[playerid][pCrimes] += 1; PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0); GivePlayerMoney(killerid, -suecost); GivePlayerMoney(playerid, suecost+100);//+100pays hospital bill } } else { WantedPoints[killerid] += 0; } if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason != 49) { SetPlayerCriminal(killerid,255, "Vorsätzlicher Mord"); } else if (((gTeam[killerid]) >= 3 || (gTeam[killerid]) == 1) && reason == 49) { SetPlayerCriminal(killerid,255, "Fahrerflucht"); } } } else if (victimteam == 1) { if(IsPlayerConnected(killerid)) { // Civ kill if ((gTeam[killerid]) == 2)//cops kill civ { PlayerInfo[playerid][pCrimes] += 1; PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0); GivePlayerMoney(killerid, -suecost); GivePlayerMoney(playerid, suecost+100);//+100pays hospital bill } else if ((gTeam[killerid]) == 1)//med kill civ { PlayerInfo[playerid][pCrimes] += 1; PlayerPlaySound(killerid, 1084, 0.0, 0.0, 0.0); GivePlayerMoney(killerid, -suecost); GivePlayerMoney(playerid, suecost+100);//+100pays hospital bill } if (((gTeam[killerid]) == 4) && reason != 49) { SetPlayerCriminal(killerid,255, "Vorsätzlicher Mord"); } else if (((gTeam[killerid]) == 3) && reason == 49) { SetPlayerCriminal(killerid,255, "Fahrerflucht"); } } } if (victimteam >= 3 && WantedPoints[playerid] > 0 && killerteam == 2) { SetPlayerFree(playerid,killerid, "Gekillt"); } killerid = INVALID_PLAYER_ID; SetPlayerColor(playerid,COLOR_GRAD2);
Das ist momentan so bei mir bei OnPlayerDeath...Wie schaff ich das, dass wenn, egal wer (sei diese Person in einer Staatsfraktion, Gang oder Mafia egal), jemand jemanden killt, man ein Mord und Verbrechen dazu bekommt...Wenn man mit jemanden mit Waffen oder der Faust tötet soll "Vorstäzlicher Mord" kommen und bei Morden mit Fahrzeugen soll "Fahrerflucht" kommen. -
Code
new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X,Y,Z); PlayerTeext[playerid] = Create3DTextLabel("Im AFK-Modus,",0xC2A2DAAA,X,Y,Z+1,30.0,0);
Wenn ein Spieler afk geht, kommt dieser 3dText über ihn. Aber wenn dieser sich bewegt, ist dieser 3dtext da wo der /afk gemacht...wie schaff ich das, dass sich das "mit dem spieler bewegt"...
-
Code
Alles anzeigenif(strcmp(cmd, "/saveguns", true) == 0) { for(new slot=0; slot<13; slot++) { GetPlayerWeaponData(playerid,slot,SavePlayerWeapons[playerid][slot],SavePlayerAmmo[playerid][slot]); } return 1; } if(strcmp(cmd, "/getguns", true) == 0) { for(new slot=0; slot<13; slot++) { if(SavePlayerWeapons[playerid][slot] != -1 && SavePlayerAmmo[playerid][slot] != -1) { GivePlayerWeapon(playerid,SavePlayerWeapons[playerid][slot],SavePlayerAmmo[playerid][slot]); } } return 1; }
Code
Alles anzeigenstock WaffenSpeichern(playerid) { new waffe,ammo,save[40],name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); format(save,sizeof(save),"/Waffen/%s.ini",name); //____________________________________Waffen Speichern____________________________________ GetPlayerWeaponData(playerid,0,waffe,ammo); dini_IntSet(save,"waslot",waffe); dini_IntSet(save,"amslot",ammo); GetPlayerWeaponData(playerid,1,waffe,ammo); dini_IntSet(save,"waslot1",waffe); dini_IntSet(save,"amslot1",ammo); GetPlayerWeaponData(playerid,2,waffe,ammo); dini_IntSet(save,"waslot2",waffe); dini_IntSet(save,"amslot2",ammo); GetPlayerWeaponData(playerid,3,waffe,ammo); dini_IntSet(save,"waslot3",waffe); dini_IntSet(save,"amslot3",ammo); GetPlayerWeaponData(playerid,4,waffe,ammo); dini_IntSet(save,"waslot4",waffe); dini_IntSet(save,"amslot4",ammo); GetPlayerWeaponData(playerid,5,waffe,ammo); dini_IntSet(save,"waslot5",waffe); dini_IntSet(save,"amslot5",ammo); GetPlayerWeaponData(playerid,6,waffe,ammo); dini_IntSet(save,"waslot6",waffe); dini_IntSet(save,"amslot6",ammo); return 0; } stock WaffenLaden(playerid) { new save[40],name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name)); format(save,sizeof(save),"/Waffen/%s.ini",name); //____________________________________Waffen Laden____________________________________ wInfo[playerid][SavePlayerWeapons] =dini_Int(save,"waslot"); wInfo[playerid][SavePlayerWeapons1] =dini_Int(save,"waslot1"); wInfo[playerid][SavePlayerWeapons2] =dini_Int(save,"waslot2"); wInfo[playerid][SavePlayerWeapons3] =dini_Int(save,"waslot3"); wInfo[playerid][SavePlayerWeapons4] =dini_Int(save,"waslot4"); wInfo[playerid][SavePlayerWeapons5] =dini_Int(save,"waslot5"); wInfo[playerid][SavePlayerWeapons6] =dini_Int(save,"waslot6"); wInfo[playerid][SavePlayerAmmo] =dini_Int(save,"amslot"); wInfo[playerid][SavePlayerAmmo2] =dini_Int(save,"amslot1"); wInfo[playerid][SavePlayerAmmo3] =dini_Int(save,"amslot2"); wInfo[playerid][SavePlayerAmmo4] =dini_Int(save,"amslot3"); wInfo[playerid][SavePlayerAmmo5] =dini_Int(save,"amslot4"); wInfo[playerid][SavePlayerAmmo6] =dini_Int(save,"amslot5"); wInfo[playerid][SavePlayerAmmo7] =dini_Int(save,"amslot6"); return 0; }
Wenn ich zb eine deagle in der hand habe und /saveguns mache und danach /dropguns ist alles so wies sein soll. wenn ich dann die waffen wieder haben will mache ich /getguns und kriege die deagle auch wieder aber wenn ich dann wieder /getguns mache kriege ich wieder ne deagle ...wie kann ich das so machen, dass wenn man einmal /getguns gemacht hatman dann keine waffen mehr kriegt
-
-
-
Code
Alles anzeigenif(strcmp(cmd, "/suspect", true) == 0 || strcmp(cmd, "/su", true) == 0) { if(IsPlayerConnected(playerid)) { if(OnDuty[playerid] != 1) { SendClientMessage(playerid, COLOR_GREY, "Du bist nicht im Dienst!"); return 1; } tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GREY, "Benutzung: /su [Playerid/Name] [Wantedpunkte] [Verbrechen]"); return 1; } giveplayerid = ReturnUser(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GREY, "Benutzung: /su [Playerid/Name] [Wantedpunkte] [Verbrechen]"); return 1; } new WantedAnzahl; WantedAnzahl = strval(tmp); if (IsACop(playerid) && OnDuty[playerid] ==1) { if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { if(PlayerInfo[giveplayerid][pJailed] > 0) { SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist im Gefängnis!"); return 1; } GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext[idx] <= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GREY, "Benutzung: /su [Playerid/Name] [Wantedpunkte] [Verbrechen]"); return 1; } if(WantedAnzahl < 1 || WantedAnzahl > 69) { SendClientMessage(playerid, COLOR_GREY, "Du kannst mindestens 1 Wantedpunkt und maximal 69 Wantedpunkte vergeben!"); return 1; } else { WantedLevel[giveplayerid] += WantedAnzahl/10; WantedPoints[giveplayerid] += WantedAnzahl; format(string, sizeof(string), "Du hast ein Verbrechen begangen (%s). Reporter: %s.",result,sendername); SendClientMessage(giveplayerid, COLOR_LIGHTRED, string); format(string, sizeof(string), "Aktuelles Wantedlevel: %d", WantedLevel[giveplayerid]); SendClientMessage(giveplayerid, COLOR_YELLOW, string); format(string, sizeof(string), "Aktuelle Wantedpunkte: %d", WantedPoints[giveplayerid]); SendClientMessage(giveplayerid, COLOR_YELLOW, string); } for(new i = 0; i < MAX_PLAYERS; i++) { if(IsACop(i)) { if(WantedPoints[giveplayerid] > 69) return SendClientMessage(playerid,COLOR_GREY,"Die Person hat bereits 69 Wantedpunkte!"); format(string, sizeof(string), "Beamter %s hat %s %d Wantedpunkte gegeben.",sendername,giveplayer, WantedAnzahl); SendClientMessage(i, COLOR_LIGHTRED, string); format(string, sizeof(string), "Verbrechen: %s | Wantedlevel des Verbrechers: %d",result, WantedLevel[giveplayerid]); SendClientMessage(i, COLOR_LIGHTRED, string); } } return 1; } } else { format(string, sizeof(string), "%d ist kein aktiver Spieler.", giveplayerid); SendClientMessage(playerid, COLOR_GREY, string); return 1; } } else { SendClientMessage(playerid, COLOR_GREY, "Du bist kein Beamter!"); } } return 1; }
Wenn ich jemanden z.B. zuerst 10 Wantedpunkte gebe, ist noch alles in Ordnung. Jedoch, wenn die Person dann wieder weitere Wantedpunkte gegeben bekommt, z.B. 20, werden die Wantedpunkte ab der zweiten Vergabe nur noch *2 gegeben.
Polizist gibt Spieler A 10 Wantedpunkte(1Wantedstern).
Polizist gibt wieder Spieler A 10 Wantedpunkte(3 Wantedsterne, eigentlich sollten es dann 30 Wantedpunkte sein, aber es werden keine 30 Wantedpunkte angezeigt.Das zweite ist, wie schaff ich das, dass wenn der Spieler der Wantedpunkte bekommt maximal nur 69 haben kann? Halt wenn man der Spieler sagen wir 40 Wantedpunkte hat und dann ein Polzist 30 geben will eine Fehlermeldung kommt(Der Spieler hat bereits 69 Wantedpunkte oder kann nicht mehr als 69 Wantdepunkte haben (oder so))
Danke.
-
-
Ich hab' vor einen neuen Job zu erstellen. Soweit ist auch alles fertig, fehlt nur noch der Befehl.
Wie kann ich den Befehl erstellen:
/beklauen [id], wenn man in der nähe des spielers ist.
5% soll der Dieb dann bekommen, von dem was der Beklaute in der Hand hatte. Bsp: Beklaute Person hat $1000 dabei, der Dieb kommt macht /beklauen und kriegt dann $50... -
Wie gesagt, steht unten im Thread.
Ich hatte das mit 'nem Timer versucht, aber nicht geschafft...^^ Das hatte nicht aufgehört zu explodieren...Hab' keine Idee wie ich es schaffen könnte^^ -
Code
Alles anzeigenpublic bombexplode(playerid) { DestroyObject(bombe); CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1]-10, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+15, PlayerExplosionY[1]-15, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+20, PlayerExplosionY[1]-20, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+25, PlayerExplosionY[1]-25, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1]-10, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1]-10, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1]-10, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1]-10, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1]-10, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-10, PlayerExplosionY[1]+10, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+15, PlayerExplosionY[1]-15, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-15, PlayerExplosionY[1]+15, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1]-170, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+100, PlayerExplosionY[1]-170, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+150, PlayerExplosionY[1]-107, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+102, PlayerExplosionY[1]-105, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+105, PlayerExplosionY[1]-120, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+180, PlayerExplosionY[1]-140, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+120, PlayerExplosionY[1]-170, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+120, PlayerExplosionY[1]-105, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+100, PlayerExplosionY[1]-108, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+107, PlayerExplosionY[1]-120, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-102, PlayerExplosionY[1]+180, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+150, PlayerExplosionY[1]-155, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-105, PlayerExplosionY[1]+145, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+150, PlayerExplosionY[1]-150, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1], PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-5, PlayerExplosionY[1]-5, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+5, PlayerExplosionY[1]+5, PlayerExplosionZ[10], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+7.5, PlayerExplosionY[1]-7.5, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-7.5, PlayerExplosionY[1]+7.5, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+20, PlayerExplosionY[1]-20, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-20, PlayerExplosionY[1]+20, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-30, PlayerExplosionY[1]+30, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+30, PlayerExplosionY[1]-30, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-30, PlayerExplosionY[1]+30, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+25, PlayerExplosionY[1]-25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1], PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+20, PlayerExplosionY[1], PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+25, PlayerExplosionY[1], PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+15, PlayerExplosionY[1], PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+7.5, PlayerExplosionY[1], PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1]-10, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1]-20, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1]-25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1]-15, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1], PlayerExplosionY[1]-7.5, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-7.5, PlayerExplosionY[1]-7.5, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-10, PlayerExplosionY[1]-10, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-15, PlayerExplosionY[1]-15, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-20, PlayerExplosionY[1]-20, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-25, PlayerExplosionY[1]-25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+7.5, PlayerExplosionY[1]+7.5, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1]+10, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+15, PlayerExplosionY[1]+15, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+20, PlayerExplosionY[1]+20, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+25, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+35, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+45, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+50, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+55, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+65, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+75, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+85, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+95, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+100, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+105, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+110, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+115, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+120, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+130, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+125, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+135, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+140, PlayerExplosionY[1]+25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]+10, PlayerExplosionY[1]-10, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-10, PlayerExplosionY[1]-10, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-15, PlayerExplosionY[1]-15, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-20, PlayerExplosionY[1]-20, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-25, PlayerExplosionY[1]-25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-35, PlayerExplosionY[1]-35, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-45, PlayerExplosionY[1]-45, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-50, PlayerExplosionY[1]-55, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-55, PlayerExplosionY[1]-65, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-65, PlayerExplosionY[1]-75, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-75, PlayerExplosionY[1]-85, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-85, PlayerExplosionY[1]-95, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-95, PlayerExplosionY[1]-105, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-100, PlayerExplosionY[1]-25, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-105, PlayerExplosionY[1]-130, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-110, PlayerExplosionY[1]-135, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-115, PlayerExplosionY[1]-140, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-120, PlayerExplosionY[1]-145, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-130, PlayerExplosionY[1]-155, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-125, PlayerExplosionY[1]-165, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-135, PlayerExplosionY[1]-170, PlayerExplosionZ[1], 7, 20.0); CreateExplosion(PlayerExplosionX[1]-140, PlayerExplosionY[1]-175, PlayerExplosionZ[1], 7, 20.0); SetPlayerCriminal(playerid,255, "Anschlag");
Wie kann ich das schaffen, dass nicht alles aufeinmal explodiert, sondern Zeile für Zeile sprich, Zeile 1 explodiert, 1/2 Sekunde später, Zeile 2 explodiert...
Mit dem Timer hatte ich es versucht, jedoch ohne Erfolg. (Hatte nicht aufgehört zu explodieren...) -
if(strcmp(cmd, "/saveguns", true) == 0)
{
for(new slot=0; slot<13; slot++)
{
GetPlayerWeaponData(playerid,slot,SavePlayerWeapons[playerid][slot],SavePlayerAmmo[playerid][slot]);
}
return 1;
}if(strcmp(cmd, "/getguns", true) == 0)
{
for(new slot=0; slot<13; slot++)
{
if(SavePlayerWeapons[playerid][slot] != -1 && SavePlayerAmmo[playerid][slot] != -1)
{
GivePlayerWeapon(playerid,SavePlayerWeapons[playerid][slot],SavePlayerAmmo[playerid][slot]);
}
}
return 1;
}stock WaffenSpeichern(playerid)
{
new waffe,ammo,save[40],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(save,sizeof(save),"/Waffen/%s.ini",name);
//____________________________________Waffen Speichern____________________________________
GetPlayerWeaponData(playerid,0,waffe,ammo);
dini_IntSet(save,"waslot",waffe);
dini_IntSet(save,"amslot",ammo);
GetPlayerWeaponData(playerid,1,waffe,ammo);
dini_IntSet(save,"waslot1",waffe);
dini_IntSet(save,"amslot1",ammo);
GetPlayerWeaponData(playerid,2,waffe,ammo);
dini_IntSet(save,"waslot2",waffe);
dini_IntSet(save,"amslot2",ammo);
GetPlayerWeaponData(playerid,3,waffe,ammo);
dini_IntSet(save,"waslot3",waffe);
dini_IntSet(save,"amslot3",ammo);
GetPlayerWeaponData(playerid,4,waffe,ammo);
dini_IntSet(save,"waslot4",waffe);
dini_IntSet(save,"amslot4",ammo);
GetPlayerWeaponData(playerid,5,waffe,ammo);
dini_IntSet(save,"waslot5",waffe);
dini_IntSet(save,"amslot5",ammo);
GetPlayerWeaponData(playerid,6,waffe,ammo);
dini_IntSet(save,"waslot6",waffe);
dini_IntSet(save,"amslot6",ammo);
return 0;
}stock WaffenLaden(playerid)
{
new save[40],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(save,sizeof(save),"/Waffen/%s.ini",name);
//____________________________________Waffen Laden____________________________________
wInfo[playerid][SavePlayerWeapons] =dini_Int(save,"waslot");
wInfo[playerid][SavePlayerWeapons1] =dini_Int(save,"waslot1");
wInfo[playerid][SavePlayerWeapons2] =dini_Int(save,"waslot2");
wInfo[playerid][SavePlayerWeapons3] =dini_Int(save,"waslot3");
wInfo[playerid][SavePlayerWeapons4] =dini_Int(save,"waslot4");
wInfo[playerid][SavePlayerWeapons5] =dini_Int(save,"waslot5");
wInfo[playerid][SavePlayerWeapons6] =dini_Int(save,"waslot6");
wInfo[playerid][SavePlayerAmmo] =dini_Int(save,"amslot");
wInfo[playerid][SavePlayerAmmo2] =dini_Int(save,"amslot1");
wInfo[playerid][SavePlayerAmmo3] =dini_Int(save,"amslot2");
wInfo[playerid][SavePlayerAmmo4] =dini_Int(save,"amslot3");
wInfo[playerid][SavePlayerAmmo5] =dini_Int(save,"amslot4");
wInfo[playerid][SavePlayerAmmo6] =dini_Int(save,"amslot5");
wInfo[playerid][SavePlayerAmmo7] =dini_Int(save,"amslot6");
return 0;
}Problem:
Ich hab' z.B. 'ne Deagle in der Hand mit 200 Munition. Wenn ich dann /saveguns machen speichert er das. Wenn ich dann /dropguns mache und dann wieder /getguns krieg ich zwar wieder meine Deagle mit 200 Schuss, aber, wenn ich den Befehl (/getguns) erneut schreibe bekomme ich wieder 'ne Deagle mit 200 Schuss...Wie kann ich das beheben, dass man beim /getguns die Waffen kriegt und danach nicht mehr? -
Hallo.
Mein Problem:
Wenn Person A und Person B online sind.Z.b. : Person A hat war 60 Minuten online und bekommt Payday.
Person B: Ist 10 Minuten online und bekommt auch einen Payday.Ich wollte fragen, wie ich das schaffe, dass nicht jeder gleichzeitig Payday bekommt.