Find ich ein super Release.
Hab mich immer gewundert wie das mit den Farmer Funktioniert wen man in Objecte reinfährt danke dafür
Find ich ein super Release.
Hab mich immer gewundert wie das mit den Farmer Funktioniert wen man in Objecte reinfährt danke dafür
stock CreateVehicleEx(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, bool:train=false, siren)
{
new vehicleid;
if(vehicletype < 400 || vehicletype > 611)return 0;
if(!train) vehicleid = CreateVehicle(vehicletype, x, y, z, rotation, color1, color2, respawn_delay);
else vehicleid = AddStaticVehicle(vehicletype, x, y, z, rotation, color1, color2);
if(Vehicle[vehicleid][vehMotor])KillTimer(Vehicle[vehicleid][VehicleTimer]);
DestroyDynamicObject(Vehicle[vehicleid][vehNeon1]);
DestroyDynamicObject(Vehicle[vehicleid][vehNeon2]);
DestroyObject(Vehicle[vehicleid][vehSiren1]);
DestroyDynamicObject(Vehicle[vehicleid][vehUCL]);
Vehicle[vehicleid][vehNeon1] = INVALID_OBJECT_ID;
Vehicle[vehicleid][vehNeon2] = INVALID_OBJECT_ID;
Vehicle[vehicleid][vehUCL] = INVALID_OBJECT_ID;
Vehicle[vehicleid][vehUCLCreated] = 0;
Vehicle[vehicleid][vehMotor] = false;
Vehicle[vehicleid][vehLicht] = false;
Vehicle[vehicleid][vehHaube] = false;
Vehicle[vehicleid][vehKRaum] = false;
Vehicle[vehicleid][vehPosX2] = x;
Vehicle[vehicleid][vehPosY2] = y;
Vehicle[vehicleid][vehPosZ2] = z;
Vehicle[vehicleid][vehSiren] = siren;
Vehicle[vehicleid][vehProds] = 0;
Vehicle[vehicleid][vehMaterialien] = 0;
Vehicle[vehicleid][vehDrogen] = 0;
Vehicle[vehicleid][vehAKRounds] = 0;
Vehicle[vehicleid][vehM4Rounds] = 0;
Vehicle[vehicleid][vehSniperRounds] = 0;
Vehicle[vehicleid][vehDeagleRounds] = 0;
Vehicle[vehicleid][vehMP5Rounds] = 0;
Vehicle[vehicleid][vehShotgunRounds] = 0;
Vehicle[vehicleid][vehFahrgestell] = 0;
Vehicle[vehicleid][vehText] = CreateDynamic3DTextLabel(" ", COLOR_WHITE, 50.0, 60.0, 110.0, 20.0, INVALID_PLAYER_ID, vehicleid, 0, -1, -1, -1, 100.0);
Vehicle[vehicleid][vehAbgeschleppt] = 0;
strdel(Vehicle[vehicleid][vehAbgeschlepptVon], 0, MAX_PLAYER_NAME);
if(train == true)
{
Vehicle[vehicleid][vehTankKM] = 0;
Vehicle[vehicleid][vehKMStandCount] = 0;
Vehicle[vehicleid][vehKMStand] = 0;
Vehicle[vehicleid][vehFuel] = VehicleData[vehicletype-400][vehMaxTank];
Vehicle[vehicleid][vehNeonID] = 0;
Vehicle[vehicleid][vehProds] = 0;
}
return vehicleid;
}
Alles anzeigen
Hey,
Ich habe mal eine frage...
Ich erstelle Züge so:
AddStaticVehicle(538, 740.7497, 2010.4698, 7.9175, 90.4493, 1,1);
Aber die Züge spawnen ohne Tank an was kann das liegen?
Tank wurde zugewiesen kann das Ja Administrativ Betanken und dann kann man damit Fahren.
Habe keine Ahnung, Habe das bei ein anderen script Probiert da funktioniert es. Komischerweiße
Habe die Sirene beim Krankenwagen z.b auf 1 gesetzt da funktioniert es aber beim Sultan funktioniert das iwie nicht
Hey, Danke @Canna
Die Seite Fande ich auch bereits.
Nun habe ich mal eine frage:
Habe die ganzen Includes auf 0.3.7 und OnVehicleSirenStateChange Funktioniert generell bei mir nicht kann mir einer sagen warum das so ist?
-> Habe es anders schon getestet die Funktion die ich habe Funktioniert eigentlich ja aber komischerweiße garnix derzeit.
Gibt es eine möglichkeit Kordis von einem Bild abzulesen per drauf drücken oder so?
für GF Zonen
ocmd:call(playerid, params[])
{
if(!IsLoggedIn(playerid))return 1;
new nummer, string[128];
if(sscanf(params, "i", nummer))return SendClientMessage(playerid, COLOR_WHITE, "{3592D7}* Benutze {00CC00}/call [Nummer]");
if(PlayerInfo[playerid][pTot] > 0)
{
SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du bist noch im Krankenhaus, und kannst nicht reden!");
return 1;
}
if(PlayerInfo[playerid][pHandyGuthaben] < 70)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du hast nicht genügend Guthaben. Lade neues Guthaben an einem 24/7 Shop auf.");
if(pMaske[playerid] == 0){
format(string, sizeof(string), "* %s nimmt sein Handy raus.", GetName(playerid));
RoundMessage(playerid, COLOR_PURPLE, string, 20.0);
SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}Bitte Warte bis der Spieler annimmt.");
}else{
format(string, sizeof(string), "* Maskierter %d nimmt sein Handy raus.",pMaskeNumber[playerid]);
RoundMessage(playerid, COLOR_PURPLE, string, 20.0);
SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}Bitte Warte bis der Spieler annimmt.");
}
if(nummer == 110)
{
pPhoning[playerid] = 1;
SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}Du kannst jetzt im Chat telefonieren. Tippe /hangup um aufzulegen.");
SendClientMessage(playerid, COLOR_WHITE, "{247BA6}Bitte gib mir eine kurze Beschreibung des Verbrechens.");
pCurrentCall[playerid] = -2;
return 1;
}
if(nummer == PlayerInfo[playerid][pNumber])return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du hast nur einen Besetzton bekommen.");
if(pCurrentCall[playerid] != -1)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du telefonierst bereits.");
for(new i=0;i<GetMaxPlayers();i++)
{
if(IsPlayerConnected(i) && PlayerInfo[i][pLoggedIn])
{
if(PlayerInfo[i][pNumber] == nummer && nummer != 0)
{
if(pCurrentCall[i] == -1)
{
if(PlayerInfo[i][pHandyStatus] == 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Der Spieler hat sein Handy ausgeschaltet.");
pCurrentCall[i] = playerid;
pCurrentCall[playerid] = i;
format(string, sizeof(string), "{FFFF00}Dein Handy klingelt. Tippe /pickup. Anrufer-ID %s", GetName(playerid));
SendClientMessage(i, COLOR_WHITE, string);
format(string, sizeof(string), "* %s's Handy klingelt.", GetName(i));
RoundMessage(i, COLOR_PURPLE, string, 20.0);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du hast nur einen Besetzton bekommen.");
return 1;
}
}
}
}
SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du hast nur einen Besetzton bekommen.");
return 1;
}
Alles anzeigen
ocmd:sms(playerid, params[])
{
if(!IsLoggedIn(playerid))return 1;
new nummer, text[80], string[128];
if(sscanf(params, "is[80]", nummer, text))
{
SendClientMessage(playerid, COLOR_WHITE, "{3592D7}* Benutze {00CC00}/sms [Nummer] [Nachricht]");
format(string, sizeof(string), "{FFFF00}Du hast noch {15951F}%d$ {FFFF00}Guthaben. Der aktuelle Preis pro Minute und SMS beträgt {15951F}70${FFFF00}.", PlayerInfo[playerid][pHandyGuthaben]);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
if(PlayerInfo[playerid][pTot] > 0)
{
SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du bist noch im Krankenhaus, und kannst nicht reden!");
return 1;
}
if(PlayerInfo[playerid][pHandyGuthaben] < 70)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du hast nicht genügend Guthaben. Lade neues Guthaben an einem 24/7 Shop auf.");
if(PlayerInfo[playerid][pMuted] > 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du wurdest stummgeschaltet.");
if(pMaske[playerid] == 0){
format(string, sizeof(string), "* %s nimmt sein Handy raus.", GetName(playerid));
RoundMessage(playerid, COLOR_PURPLE, string, 20.0);
}else {
format(string, sizeof(string), "* Maskierter %d nimmt sein Handy raus.", pMaskeNumber[playerid]);
RoundMessage(playerid, COLOR_PURPLE, string, 20.0);
}
if(nummer == PlayerInfo[playerid][pNumber])return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Versenden der Nachricht fehlgeschlagen.");
for(new i=0;i<GetMaxPlayers();i++)
{
if(IsPlayerConnected(i) && PlayerInfo[i][pLoggedIn])
{
if(PlayerInfo[i][pNumber] == nummer && nummer != 0)
{
if(PlayerInfo[i][pHandyStatus] == 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Der Spieler hat sein Handy ausgeschaltet!");
format(string, sizeof(string), "{FFFF00}SMS: %s, Sender: %s (%d)", text, GetName(playerid), PlayerInfo[playerid][pNumber]);
SendClientMessage(i, COLOR_WHITE, string);
format(string, sizeof(string), "{FFFF00}SMS: %s, Sender: %s (%d)", text, GetName(i), PlayerInfo[i][pNumber]);
SendClientMessage(playerid, COLOR_WHITE, string);
GameTextForPlayer(playerid, "~r~$-70", 5000, 1);
PlayerInfo[playerid][pHandyGuthaben] -= 70;
return 1;
}
}
}
SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Senden der Nachricht fehlgeschlagen");
return 1;
}
Alles anzeigen
Wie kann man über tab machen wen ich ein Spieler Anklicke das ein Dialog Erscheint Anrufen\nSms schreiben
Eingabe für eine Nummer mit Dialog.
Eingabe für die sms die gesendet werden soll auch ein Dialog
Habe mir sowas nie gearbeitet wäre mal echt interessant wen ihr mir da mal tipps geben könntet wie man sowas baut
Hey das klingt sehr interessant. Habe dadurch mal eine frage. wie ist es möglich wen ich mit der Fahrzeug ID 552 zu den Trailer 611 rückwärts hinfahre das dies automatisch abgekoppelt wird.
Aber sonst echt eine super idee kann man viel damit anstellen.
habe ich eben gemacht die pawn.cfg erstellt und -d3 reingeschrieben.
Laut der Infomation des Logs zeigt er mir die Zeile:
PlayerInfo[pAcceptPaket[playerid]][pJobMoney] += pPaketPrice[playerid];
Log:
[debug] Run time error 4: "Array index out of bounds"[debug] Attempted to read/write array element at negative index -255[debug] AMX backtrace:[debug] #0 00150818 in public ocmd_accept (playerid=0, params[]=@02f7d1e8 "paket") at C:\Users\Patrik\Desktop\Reallife\gamemodes\Reallife.pwn:22887[debug] #1 native CallLocalFunction () from samp-server.exe[debug] #2 00008df0 in public OnPlayerCommandText (playerid=0, cmdtext[]=@02f7d1b0 "/accept paket") at C:\Users\Patrik\Desktop\Reallife\pawno\include\ocmd.inc:77
//E:
Logisch wen ich so unschau bin und lasse ihn das reseten vorher und dann gebe ich ihm das
Fehler behoben
LOG:
Verstehe nicht warum das nicht Funktioniert
[debug] Run time error 4: "Array index out of bounds"
[debug] Attempted to read/write array element at negative index -255
[debug] AMX backtrace:
[debug] #0 0012bf84 in public ocmd_accept (0, 50487812) from Reallife.amx
[debug] #1 native CallLocalFunction () from samp-server.exe
[debug] #2 000079a4 in public OnPlayerCommandText (0, 50487756) from Reallife.amx
Paket Akzeptieren:
else if(strcmp(option, "paket", true) == 0)
{
if(pAcceptPaket[playerid] != -255)
{
if(IsLoggedIn(pAcceptPaket[playerid]))
{
if(PlayerInfo[playerid][pErstehilfe] == 1)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du hast bereits ein Erstehilfe-Paket.");
new Float:pos[3];
GetPlayerPos(pAcceptPaket[playerid], pos[0], pos[1], pos[2]);
if(!IsPlayerInRangeOfPoint(playerid, 4.0, pos[0], pos[1], pos[2]))return SendClientMessage(playerid, COLOR_WHITE, "{33CCFF}* Du bist nicht in der Nöhe vom Sanitäter.");
GiveMoney(playerid, -pPaketPrice[playerid]);
format(string, sizeof(string), "{33CCFF}* %s hat dein Erste-Hilfe-Paket für $%d gekauft.", GetName(playerid), pPaketPrice[playerid]);
SendClientMessage(pAcceptPaket[playerid], COLOR_WHITE, string);
format(string,sizeof(string),"~w~Paket verkauft~n~~g~%d$", pPaketPrice[playerid]);
GameTextForPlayer(playerid, string, 5000, 1);
format(string, sizeof(string), "{33CCFF}* Du hast für $%d ein Erste-Hilfe-Paket von %s gekauft.", pPaketPrice[playerid], GetName(pAcceptPaket[playerid]));
SendClientMessage(playerid, COLOR_WHITE, string);
SendClientMessage(playerid, COLOR_WHITE,"{33CCFF}* Mit /erstehilfe kannst du deine Wunden Versorgen.");
pAcceptPaket[playerid] = -255;
Frak[5][frakKasse] += pPaketPrice[playerid];
PlayerInfo[playerid][pErstehilfe] = 1;
PlayerInfo[pAcceptPaket[playerid]][pJobMoney] += pPaketPrice[playerid];
}
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du hast keine Angebot erhalten!");
return 1;
}
Alles anzeigen
Ein Paket Verkaufen
ocmd:paket(playerid, params[])
{
if(!IsLoggedIn(playerid))return 1;
new pID, geld, Float:pos[3], string[128];
if(PlayerInfo[playerid][pFraktion] != 5)return SendClientMessage(playerid, COLOR_WHITE, ERROR_FRAKTION);
if(sscanf(params, "ud", pID, geld))return SendClientMessage(playerid, COLOR_WHITE, "{247BA6}* Benutze: {00CC00}/paket [SpielerID/Name] [Preis (1-500$)]");
if(geld < 1 || geld > 500) return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Der Preis muss zwischen 1$ und 500$ liegen!");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_WHITE,"{AFAFAF}Dieser Spieler ist nicht Online.");
//if(pID == playerid)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du kannst dir selber kein Erstehilfe-Paket geben.");
if(IsPlayerNPC(pID))return 1;
GetPlayerPos(pID, pos[0], pos[1], pos[2]);
if(!IsPlayerInRangeOfPoint(playerid, 4.0, pos[0], pos[1], pos[2]))return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Der Spieler befindet sich nicht in deiner Nähe.");
pAcceptPaket[pID] = playerid;
pPaketPrice[pID] = geld;
format(string, sizeof(string), "{33CCFF}Du hast %s ein Erstehilfe-Paket für %d$ angeboten.", GetName(pID), geld);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "{33CCFF}Sanitäter %s bietet dir ein Erste-Hilfe-Paket für %d$ an. Benutze /accept Paket", GetName(playerid), geld);
SendClientMessage(pID, COLOR_WHITE, string);
return 1;
}
Alles anzeigen
Naja wen ich Fische Koche funktioniert es nicht mehr Log:
[debug] Run time error 4: "Array index out of bounds"
[debug] Attempted to read/write array element at negative index -1
[debug] AMX backtrace:
[debug] #0 001400dc in public ocmd_cooked (0, 50662360) from Reallife.amx
[debug] #1 native CallLocalFunction () from samp-server.exe
[debug] #2 00007a2c in public OnPlayerCommandText (0, 50662328) from Reallife.amx
Der Index ist normal -1 wen er keine Besitzt normal.
Naturlich wen er welche kocht wird das geändert.
Danke und Frohe Weihnachten
Habs gerade gesehn und mal verglichen
Ich wollte meine gekochten Fische anzeigen lassen aber iwie funktioniert das nicht
//Funktioniert nicht
ocmd:cooked(playerid)
{
SendClientMessage(playerid, COLOR_WHITE, "|____________________Fische____________________|");
for(new i=1, string[128]; i<6; i++)
{
if(PlayerInfo[playerid][pCookID][i] == -1) format(string, sizeof(string), "** (%d) Fisch: Nicht vorhanden", i);
else format(string, sizeof(string), "{AFAFAF}** (%d) Fisch: %s (%d LBS)", i, Fische[PlayerInfo[playerid][pFishID][i]], PlayerInfo[playerid][pCookHP][i]);
SendClientMessage(playerid, COLOR_WHITE, "|______________________________________________|");
}
return 1;
}
Alles anzeigen
//Funktioniert
ocmd:cook(playerid, params[])
{
new fishID, string[128];
if(sscanf(params, "i", fishID))return SendClientMessage(playerid, COLOR_WHITE, "{247BA6}* Benutze: {00CC00}/cook [Fisch Nummer]");
if(fishID<1||fishID>5)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Wähle einen Fisch zwischen 1-5 aus.");
if(!IsAtCookPlace(playerid))return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Hier kannst du nicht kochen.");
if(PlayerInfo[playerid][pFishID][fishID] != -1)
{
for(new cookID=1;cookID<MAX_FISHING_FISHES;cookID++)
{
if(PlayerInfo[playerid][pCookID][cookID] == -1)
{
PlayerInfo[playerid][pCookID][cookID] = PlayerInfo[playerid][pFishID][fishID];
PlayerInfo[playerid][pFishID][fishID] = -1;
PlayerInfo[playerid][pCookHP][cookID] = PlayerInfo[playerid][pFishweight][fishID]/3;
format(string, sizeof(string), "{33CCFF}%s mit %d LBS gekocht. (Gibt dir %dHP)", Fische[PlayerInfo[playerid][pCookID][cookID]], PlayerInfo[playerid][pFishweight][fishID], PlayerInfo[playerid][pCookHP][cookID]);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
}
return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Keinen freien Platz zum Kochen!");
}
else if(PlayerInfo[playerid][pFishID][fishID] == -1)
{
SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Diesen Fisch besitzt du nicht.");
}
return 1;
}
Alles anzeigen
Mal eine Kurze frage habe nun ein fehler bei mir endreckt.
format(string,sizeof(string),"%s{FFFFFF}: %s", a_rang[sort[i][0]-1], GetName([sort[i][1]]);
C:\Users\Patrik\Desktop\Reallife\gamemodes\Reallife.pwn(23630) : warning 225: unreachable code
C:\Users\Patrik\Desktop\Reallife\gamemodes\Reallife.pwn(29169) : error 029: invalid expression, assumed zero
C:\Users\Patrik\Desktop\Reallife\gamemodes\Reallife.pwn(29169) : warning 215: expression has no effect
C:\Users\Patrik\Desktop\Reallife\gamemodes\Reallife.pwn(29169) : error 001: expected token: ";", but found "]"
C:\Users\Patrik\Desktop\Reallife\gamemodes\Reallife.pwn(29169) : error 029: invalid expression, assumed zero
C:\Users\Patrik\Desktop\Reallife\gamemodes\Reallife.pwn(29169) : fatal error 107: too many error messages on one line
Komisch warum spinnt das ?
Kurze frage
Habe das Problem mit Cooked:
Möchte so die gekochten Fische anzeigen:
-> Gekochte Fisch Anzeige
ocmd:cooked(playerid)
{
SendClientMessage(playerid, COLOR_WHITE, "|____________________Fische____________________|");
for(new i=1, string[128]; i<6; i++)
{
if(PlayerInfo[playerid][pCookID][i] == -1) format(string, sizeof(string), "** (%d) Fisch: Nicht vorhanden", i);
else format(string, sizeof(string), "{AFAFAF}** (%d) Fisch: %s (%d LBS)", i, Fische[PlayerInfo[playerid][pFishID][i]], PlayerInfo[playerid][pCookHP][i]);
SendClientMessage(playerid, COLOR_WHITE, "|______________________________________________|");
}
return 1;
}
Alles anzeigen
-> So Kocht er Fische das Funktioniert.
ocmd:cook(playerid, params[])
{
new fishID, string[128];
if(sscanf(params, "i", fishID))return SendClientMessage(playerid, COLOR_WHITE, "{247BA6}* Benutze: {00CC00}/cook [Fisch Nummer]");
if(fishID<1||fishID>5)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Wähle einen Fisch zwischen 1-5 aus.");
if(!IsAtCookPlace(playerid))return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Hier kannst du nicht kochen.");
if(PlayerInfo[playerid][pFishID][fishID] != -1)
{
for(new cookID=1;cookID<MAX_FISHING_FISHES;cookID++)
{
if(PlayerInfo[playerid][pCookID][cookID] == -1)
{
PlayerInfo[playerid][pCookID][cookID] = PlayerInfo[playerid][pFishID][fishID];
PlayerInfo[playerid][pFishID][fishID] = -1;
PlayerInfo[playerid][pCookHP][cookID] = PlayerInfo[playerid][pFishweight][fishID]/3;
format(string, sizeof(string), "{33CCFF}%s mit %d LBS gekocht. (Gibt dir %dHP)", Fische[PlayerInfo[playerid][pCookID][cookID]], PlayerInfo[playerid][pFishweight][fishID], PlayerInfo[playerid][pCookHP][cookID]);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
}
return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Keinen freien Platz zum Kochen!");
}
else if(PlayerInfo[playerid][pFishID][fishID] == -1)
{
SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Diesen Fisch besitzt du nicht.");
}
return 1;
}
Alles anzeigen
Hey,
Ich habe mal eine Kurze frage... iwie kriegt nicht die Person der den Contract hat den Label sondern ein anderer Spieler warum?
ocmd:contract(playerid, params[])
{
new pID, betrag, string[128];
if(PlayerInfo[playerid][pFraktion] == 15)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du kannst keine Auftragsmorde erstellen.");
if(sscanf(params, "ui", pID, betrag))return SendClientMessage(playerid, COLOR_WHITE, "{247BA6}* Benutze: {00CC00}/contract [SpielerID/Name] [Betrag]");
if(!IsLoggedIn(pID))return SendClientMessage(playerid, COLOR_WHITE, ERROR_OFFLINE);
if(PlayerInfo[pID][pFraktion] == 15)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du kannst keine Auftragsmorde auf deine Mitglieder machen.");
if(PlayerInfo[pID][pFraktion] == 5 || PlayerInfo[pID][pFraktion] == 6 || PlayerInfo[pID][pFraktion] == 16)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Auftragsmorde auf Sanitäter, Ordnungsbeamte und News Reporter sind nicht möglich.");
if(PlayerInfo[pID][pLevel] < 2)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Der Spieler muss mind. Level 2 sein.");
if(PlayerInfo[playerid][pLevel] < 2)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du musst mind. Level 2 sein.");
if(GetMoney(playerid) < betrag)return SendClientMessage(playerid, COLOR_WHITE, ERROR_MONEY);
if(betrag < 5000)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Der Betrag muss mindestens $5.000 sein.");
format(string, sizeof(string), "{33CCFF}Du hast einen Auftragsmord auf %s für $%d erstellt.", GetName(pID), betrag);
SendClientMessage(playerid, COLOR_WHITE, string);
GiveMoney(playerid, -betrag);
format(string, sizeof(string), "{FFFF00}Ein neuer Auftragsmord verfügbar auf %s für $%d!", GetName(pID), (PlayerInfo[pID][pContract]+betrag));
SendFraktionMessage(15, COLOR_WHITE, string);
OnContractChange(playerid, PlayerInfo[pID][pContract], (PlayerInfo[pID][pContract]+betrag));
PlayerInfo[pID][pContract] += betrag;
return 1;
}
Alles anzeigen
public OnContractChange(playerid, oldbetrag, newbetrag)
{
new string[64];
for(new i=0;i<GetMaxPlayers();i++)
{
if(IsLoggedIn(i))
{
if(IsPlayerStreamedIn(playerid, i))
{
if(PlayerInfo[i][pFraktion] == 15)
{
if(newbetrag > 0 && oldbetrag == 0){
for(new a=0;a<MAX_CTLABEL;a++)
{
if(PlayerInfo[i][pCTLabelCreated][a] == 0){
format(string, sizeof(string), "{FFFF00}[%d] %s\nKopfgeld: %d$", playerid, GetName(playerid), newbetrag);
PlayerInfo[i][pCTLabel][a] = CreateDynamic3DTextLabel(string, COLOR_WHITE, 0.0, 0.0, 0.0, 10.0, playerid, INVALID_VEHICLE_ID, 0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), i);
PlayerInfo[i][pCTLabelID][a] = playerid;
PlayerInfo[i][pCTLabelCreated][a] = 1;
Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL, PlayerInfo[i][pCTLabel][a], E_STREAMER_ATTACH_OFFSET_Z, 0.7);
return 1;
}
}
}
else if (newbetrag > 0 && oldbetrag > 0){
for(new a=0;a<MAX_CTLABEL;a++)
{
if(PlayerInfo[i][pCTLabelCreated][a] == 1 && PlayerInfo[i][pCTLabelID][a] == playerid){
format(string, sizeof(string), "{FFFF00}[%d] %s\nKopfgeld: %d$", playerid, GetName(playerid), newbetrag);
UpdateDynamic3DTextLabelText(PlayerInfo[i][pCTLabel][a], COLOR_WHITE, string);
return 1;
}
}
}
else if(oldbetrag > 0 && newbetrag <= 0)
{
for(new a=0;a<MAX_CTLABEL;a++)
{
if(PlayerInfo[i][pCTLabelCreated][a] == 1 && PlayerInfo[i][pCTLabelID][a] == playerid)
{
PlayerInfo[i][pCTLabelID][a] = INVALID_PLAYER_ID;
PlayerInfo[i][pCTLabelCreated][a] = 0;
DestroyDynamic3DTextLabel(PlayerInfo[i][pCTLabel][a]);
return 1;
}
}
}
}
}
}
}
return 1;
}
Alles anzeigen
PlayerInfo[sort[i][1]][pName]
Kann man das Nicht mit GetName([sort[i][1]]); machen?
Hey,
Mal eine Kurze frage:
Wie lasse ich die Ränge z.b als Erster einzeigen:
Projektleiter ganz oben
Head-Admin ein Darunter
Admin ein Darunter
Moderator ein Darunter
Supporter ein Darutner
Communityhelfer ein Darunter
Derzeit sotiert sich das nach namen das möchte ich vermeiden...
//E:
ocmd:admins(playerid)
{
new string[128];
SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Teammitglieder online:");
for(new i=0;i<GetMaxPlayers();i++)
{
if(IsLoggedIn(i))
{
if(PlayerInfo[i][pAdmin] > 0)
{
switch(PlayerInfo[i][pAdmin])
{
case 6:
{
format(string, sizeof(string), "{F81414}Projektleitung {FFFFFF}%s", GetName(i));
SendClientMessage(playerid, COLOR_WHITE, string);
}
case 5:
{
format(string, sizeof(string), "{F81414}Head-Admin {FFFFFF}%s", GetName(i));
SendClientMessage(playerid, COLOR_WHITE, string);
}
case 4:
{
format(string, sizeof(string), "{2641FE}Admin {FFFFFF}%s", GetName(i));
SendClientMessage(playerid, COLOR_WHITE, string);
}
case 3:
{
format(string, sizeof(string), "{33CCFF}Moderator {FFFFFF}%s", GetName(i));
SendClientMessage(playerid, COLOR_WHITE, string);
}
case 2:
{
format(string, sizeof(string), "{33CCFF}Supporter {FFFFFF}%s", GetName(i));
SendClientMessage(playerid, COLOR_WHITE, string);
}
case 1:
{
format(string, sizeof(string), "{FF9933}Communityhelfer {FFFFFF}%s", GetName(i));
SendClientMessage(playerid, COLOR_WHITE, string);
}
}
}
}
}
return 1;
}
Alles anzeigen
Wie lässt man bei dini Namen auslesen?
if( strcmp( key , "BanReason" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pBanReason] = strval( val ); }
if( strcmp( key , "BanAdmin" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pBanAdmin] = strval( val ); }
DEBUG » Server brauchte für das Hochfahren 34 ms.
Aber wen ich /system angebe bleibt alles auf 0 hm verstehe ich nicht :o
ocmd:system(playerid,params[])
{
new string[1200], formatstr[128], oldtime[10], Header[64];
if(Spieler[playerid][pAdmin] < 6)return SendClientMessage(playerid, COLOR_WHITE, ERROR_ADMIN);
oldtime[4] = GetTickCount();
oldtime[0] = GetTickCount();
OnServerTimer();
format(formatstr,sizeof(formatstr),"{9B2736}Timer:{D9CCD9} ServerTimer benötigt für durchlauf %i ms\n", GetTickCount() - oldtime[0]);
strcat(string,formatstr);
oldtime[1] = GetTickCount();
UpdateUhr();
format(formatstr,sizeof(formatstr),"{9B2736}Timer:{D9CCD9} Uhrzeit benötigt für durchlauf %i ms\n",GetTickCount() - oldtime[1]);
strcat(string,formatstr);
oldtime[2] = GetTickCount();
PayDay(playerid);
format(formatstr,sizeof(formatstr),"{9B2736}Timer:{D9CCD9} PayDay benötigt für durchlauf %i ms\n", GetTickCount() - oldtime[2]);
strcat(string,formatstr);
oldtime[3] = GetTickCount();
OnBlitzerTimer();
format(formatstr,sizeof(formatstr),"{9B2736}Timer:{D9CCD9} Blitzer benötigt für durchlauf %i ms\n", GetTickCount() - oldtime[3]);
strcat(string,formatstr);
format(formatstr,sizeof(formatstr),"{9B2736}System:{D9CCD9} Das System (Timer, Funktionen) benötigt für durchlauf %i ms", playerid, GetTickCount() - oldtime[4]);
strcat(string,formatstr);
strcat(string,"\n\n {9B2736}ServerName{FFFFFF}");
format(Header,sizeof(Header),"{9B2736}System (%02d.%02d.%04d - %02d:%02d:%02d)", tag, monat, jahr, stunde, minute, sekunde);
ShowPlayerDialog(playerid,DIALOG_4ALL_SONSTIGES, DIALOG_STYLE_MSGBOX, Header, string, "Verlassen","");
return 1;
}
Alles anzeigen
Kurze Frage was mache ich falsch es wird alles mit 0 ms ausgegeben?
Wen ich den Server Hochfahre werden mir die ms angezeigt wielange er braucht?