Ich würde auch gerne an der Verlosung teilnehmen
Beiträge von Apokrate
-
-
Suchen einen
steam://joinlobby/730/109775242594737055/76561198067091399 -
suchen einen. sind im durchschnitt mg1 ._.
-
Spieler[playerid][pExp]++;
oder
Spieler[playerid][pExp] += 1; -
Erstmal ganz gediegen @[DT]Sniper random in einer runde getroffen ._.
Falls kein "Fake" -
Ich habe vor eine neue Arena zu machen und wenn ich diese als Polizist betrete, dann sollen mir die Wantedlabels direkt angezeigt werden über den personen.
Wenn ich die Arena verlasse sollen die nicht mehr angezeigt werden.
Das selbe wenn neue Wanteds dazu kommen oder verschwinden.Ich habe es momentan so gelöst, aber nach einigen Minuten lagt man neben Personen mit Wanteds extrem aufgrund des Labels.
In einer Sekundenschleife
C
Alles anzeigenif(Spieler[i][pWanteds] > 0 && DM[i][7] == 2) { new Float:X, Float:Y, Float:Z,text[256]; GetPlayerPos( i, X, Y, Z ); format(text,sizeof(text),"[%d] %s\nWanteds: %i",i,SpielerName(i),Spieler[i][pWanteds]); for(new cop=0; cop<MAX_PLAYERS; cop++) { if(DM[cop][7] == 1) { printf("Erstelle Label an %d für ID %d", i, cop); //WantedLabel[cop][i] = CreatePlayer3DTextLabel(cop, text, 0xFFFF00FF, 0, 0, 0, 30.0, i, INVALID_VEHICLE_ID, 1); WantedLabel[cop][i] = Create3DTextLabel(text, COLOR_YELLOW, X, Y, Z, 30.0, 8, 1); Attach3DTextLabelToPlayer(WantedLabel[cop][i], i, 0.0, 0.0, 0.7); } } } else { for(new cop=0; cop<MAX_PLAYERS; cop++) { if(DM[cop][7] == 1) { //DeletePlayer3DTextLabel(cop,WantedLabel[cop][i]); Delete3DTextLabel(WantedLabel[cop][i]); } } }
DM[playerid][7] == 1 // Cops
DM[playerid][7] == 2 // Robber -
[21:55:49] Spieler 0 zielt auf Actor 0
[21:55:49] Actor 0 hat eine Sperre von: 0
[21:55:49] Raube Actor 0 aus.
[21:55:50] Spieler 0 zielt auf Actor 0
[21:55:51] Spieler 0 zielt auf Actor 0
[21:55:52] Spieler 0 zielt auf Actor 0
[21:55:53] string = Du hast 625$ ausgeraubt. -
Immer noch das selbe Problem
[16:05:10] TargetID: 5, RobBot-ID: 5, RobSperre: 60, RobbedBot: 5, RobSek: 39
[16:05:14] TargetID: 5, RobBot-ID: 5, RobSperre: 60, RobbedBot: 5, RobSek: 35 -
Die Rob-Sperre wird zwar gesetzt, aber ich kann unendlich mal den Bot ausrauben.
C
Alles anzeigenvoid BotTimer() { for(new playerid = 0; playerid < MAX_PLAYERS; playerid++) { new playerTargetActor = GetPlayerTargetActor(playerid); for(new i = 0; i < sizeof(RobBot); i++) { if(RobBot[i][RobSperre] > 0) { RobBot[i][RobSperre]--; } if(playerTargetActor == RobBot[i][rob_ID] && DM[playerid][7] == 2) { new playerWeapon = GetPlayerWeapon(playerid); new keys, updown, leftright; GetPlayerKeys(playerid, keys, updown, leftright); if(!ActorHandsup[RobBot[i][rob_ID]] && playerWeapon >= 22 && playerWeapon <= 42 && keys & KEY_AIM) { if(RobBot[i][RobSperre] > 0 && IsRobbing[playerid] == false) { new Sperre[256]; format(Sperre, sizeof(Sperre), "Dieses Geschäft kann erst wieder in %02d:%02d ausgeraubt werden.", RobBot[i][RobSperre]/60, RobBot[i][RobSperre]%60); SendClientMessage(playerid, COLOR_RED, Sperre); return 1; } ApplyActorAnimation(RobBot[i][rob_ID], "SHOP", "SHP_HandsUp_Scr",4.1,0,0,0,1,0); ActorHandsup[RobBot[i][rob_ID]] = true; //ab hier startet der ROb RobBot[i][RobSperre] = 60; IsRobbing[playerid] = true; RobbedBot[playerid] = playerTargetActor; RobSek[playerid] = random(10)+30; Rob_Timer[playerid] = SetTimerEx("RobTimer", 1000, true, "i", playerid); } } else if(playerTargetActor != RobBot[i][rob_ID] && DM[playerid][7] == 2 && IsRobbing[playerid] == true) { //nicht anvisiert IsRobbing[playerid] = false; KillTimer(Rob_Timer[playerid]); new string[128]; format(string, sizeof(string), "Du hast %d$ ausgeraubt.", RobMoney[playerid]); SendClientMessage(playerid, COLOR_LIGHTBLUE,string); RobMoney[playerid] = 0; RobbedBot[playerid] = -1; ActorHandsup[RobBot[i][rob_ID]] = false; ClearActorAnimations(RobBot[i][rob_ID]); } } } return 1; }
-
-
Du musst die ID des Clans auch aus der Datenbank lesen, und anstatt i+1 der Variable j zuweisen.
C
Alles anzeigenpublic LoadClans() { new string[128]; for(new i = 0; i < MAX_CLANS; i++) { format(string, sizeof(string),"SELECT * FROM `Clans` WHERE `ID` = '%d'", i); mysql_query(dbhandle,string); mysql_store_result(); if(mysql_num_rows() != 0) { mysql_fetch_row(string); Clan[i][cID] = cache_get_field_content_int(i,"ID",dbhandle); cache_get_field_content(i,"name",Clan[i][cName],dbhandle,32); printf("Schleife: %d, cID: %d, cName: %s",i,Clan[i][cID],Clan[i][cName]); cache_get_field_content(i,"Leader",Clan[i][cLeader],dbhandle,32); Clan[i][cMitglieder] = cache_get_field_content_int(i,"Mitglieder",dbhandle); Clan[i][cLevel] = cache_get_field_content_int(i,"level",dbhandle); Clan[i][cGeld] = cache_get_field_content_int(i,"geld",dbhandle); Clan[i][cEXP] = cache_get_field_content_int(i,"EXP",dbhandle); Clan[i][cSiege] = cache_get_field_content_int(i,"Siege",dbhandle); Clan[i][cNiederlagen] = cache_get_field_content_int(i,"Niederlagen",dbhandle); Clan[i][cUnentschieden] = cache_get_field_content_int(i,"Unentschieden",dbhandle); Clan[i][cHouseKey] = cache_get_field_content_int(i,"Housekey",dbhandle); cache_get_field_content(i,"Farbe",Clan[i][cFarbe],dbhandle,11); new Float:kd = floatdiv(Clan[i][cSiege],Clan[i][cNiederlagen]); Clan[i][Winrate] = kd; momentaneClans++; } mysql_free_result(); } printf("[LOAD] %d/%d Clans geladen",momentaneClans,MAX_CLANS); return 1; }
Ausgabe:
[17:51:50] Schleife: 1, cID: 0, cName: NULL
[17:51:50] Schleife: 3, cID: 0, cName: NULLFunktioniert wohl nicht ganz.
-
Ich habe folgendes Problem:
Ich erstelle 3 Clans und lade die Clans. Alles klappt perfekt.
Nun lösche ich aber Clan 2. Jetzt ist alles um eine ID verschoben und die Clans werden bei den Spielern also falsch angezeigt.C
Alles anzeigenmysql_tquery(dbhandle, "SELECT * FROM `Clans`", "LoadClans", ""); void LoadClans() { new rows = cache_num_rows(), j; for(new i = 0; i < rows; i++) { j = i+1; Clan[j][cID] = cache_get_field_content_int(i,"ID",dbhandle); cache_get_field_content(i,"name",Clan[j][cName],dbhandle,32); cache_get_field_content(i,"Leader",Clan[j][cLeader],dbhandle,32); Clan[j][cMitglieder] = cache_get_field_content_int(i,"Mitglieder",dbhandle); Clan[j][cLevel] = cache_get_field_content_int(i,"level",dbhandle); Clan[j][cGeld] = cache_get_field_content_int(i,"geld",dbhandle); Clan[j][cEXP] = cache_get_field_content_int(i,"EXP",dbhandle); Clan[j][cSiege] = cache_get_field_content_int(i,"Siege",dbhandle); Clan[j][cNiederlagen] = cache_get_field_content_int(i,"Niederlagen",dbhandle); Clan[j][cUnentschieden] = cache_get_field_content_int(i,"Unentschieden",dbhandle); Clan[j][cHouseKey] = cache_get_field_content_int(i,"Housekey",dbhandle); cache_get_field_content(i,"Farbe",Clan[j][cFarbe],dbhandle,11); new Float:kd = floatdiv(Clan[j][cSiege],Clan[j][cNiederlagen]); Clan[j][Winrate] = kd; momentaneClans++; } return 1; }
-
ich kann ihn sehen
-
C
Alles anzeigenocmd:suspect(playerid, params[]) { new pID, string[128], reason[64]; if(sscanf(params, "us[64]", pID, reason))return SendClientMessage(playerid, COLOR_GREY, "Benutze: (/su)spect [SpielerID/Name] [Grund]"); if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist nicht online."); if(IsPlayerNPC(pID))return 1; Spieler[pID][pWanteds] += 1; j_SetPlayerWantedLevel(pID,Spieler[pID][pWanteds]); format(string, sizeof(string), "Du hast ein Verbrechen begangen. (%s) Zeuge: %s", reason, SpielerName(playerid)); SendClientMessage(pID, COLOR_RED, string); format(string, sizeof(string), "Dein aktuelles Wanted Level: %d", Spieler[pID][pWanteds]); SendClientMessage(pID, COLOR_YELLOW, string); format(string, sizeof(string), "HQ: %s (ID: %d) hat ein Verbrechen begangen: %s, over.", SpielerName(pID), pID, reason); SendCopMessage(COLOR_COP_MELDUNG, string); format(string, sizeof(string), "HQ: Zeuge: %s, Aktuelles Wantedlevel: %d, over.", SpielerName(playerid), Spieler[pID][pWanteds]); SendCopMessage(COLOR_COP_MELDUNG, string); return 1; } stock j_SetPlayerWantedLevel(playerid,wlvl) { if(wlvl > 0) { HideWantedStars(playerid); pTextDraw[playerid][StarNumber] = CreatePlayerTextDraw(playerid, 520.000000, 103.000000, "12"); PlayerTextDrawBackgroundColor(playerid, pTextDraw[playerid][StarNumber], 255); PlayerTextDrawFont(playerid, pTextDraw[playerid][StarNumber], 3); PlayerTextDrawLetterSize(playerid, pTextDraw[playerid][StarNumber], 0.569999, 2.000000); PlayerTextDrawColor(playerid, pTextDraw[playerid][StarNumber], -1); PlayerTextDrawSetOutline(playerid, pTextDraw[playerid][StarNumber], 1); PlayerTextDrawSetProportional(playerid, pTextDraw[playerid][StarNumber], 1); new tdstring[32]; PlayerTextDrawShow(playerid,pTextDraw[playerid][StarNumber]); TextDrawShowForPlayer(playerid,gTextDraw[LightStar1]); format(tdstring, sizeof(tdstring), "%d", wlvl); PlayerTextDrawSetString(playerid, pTextDraw[playerid][StarNumber], tdstring); } else if(wlvl == 0) { HideWantedStars(playerid); } return 1; } stock HideWantedStars(playerid) { TextDrawHideForPlayer(playerid,gTextDraw[LightStar1]); PlayerTextDrawDestroy(playerid, pTextDraw[playerid][StarNumber]); return 1; }
Der Stern (LightStar1) wird dauerthaft, wie gewollt, angezeigt. Die "StarNumber" aber nicht. Sie blinkt nur kurz auf und verschwindet sofort.
-
Du rufst j_SetPlayerWantedLevel auf, dein stock heißt aber s_SetPlayerWantedLevel.
War n "fail".
Ist geändert.
Zahl erscheint nur kurz und verschwindet. -
Wie sieht denn der Befehl aus?
C
Alles anzeigenocmd:suspect(playerid, params[]) { new pID, string[128], reason[64]; if(DM[playerid][7] != 1)return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Polizist."); if(sscanf(params, "us[64]", pID, reason))return SendClientMessage(playerid, COLOR_GREY, "Benutze: (/su)spect [SpielerID/Name] [Grund]"); if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist nicht online."); if(IsPlayerNPC(pID))return 1; //if(DM[pID][7] == 1)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist ein Polizist."); //if(DM[pID][7] != 2)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist kein Robber."); Spieler[pID][pWanteds] += 1; j_SetPlayerWantedLevel(pID,Spieler[pID][pWanteds]); format(string, sizeof(string), "Du hast ein Verbrechen begangen. (%s) Zeuge: %s", reason, SpielerName(playerid)); SendClientMessage(pID, COLOR_RED, string); format(string, sizeof(string), "Dein aktuelles Wanted Level: %d", Spieler[pID][pWanteds]); SendClientMessage(pID, COLOR_YELLOW, string); format(string, sizeof(string), "HQ: %s (ID: %d) hat ein Verbrechen begangen: %s, over.", SpielerName(pID), pID, reason); SendCopMessage(COLOR_COP_MELDUNG, string); format(string, sizeof(string), "HQ: Zeuge: %s, Aktuelles Wantedlevel: %d, over.", SpielerName(playerid), Spieler[pID][pWanteds]); SendCopMessage(COLOR_COP_MELDUNG, string); return 1; }
-
C
Alles anzeigenstock s_SetPlayerWantedLevel(playerid,wlvl) { if(wlvl > 0) { HideWantedStars(playerid); pTextDraw[playerid][StarNumber] = CreatePlayerTextDraw(playerid, 520.000000, 103.000000, "12"); PlayerTextDrawBackgroundColor(playerid, pTextDraw[playerid][StarNumber], 255); PlayerTextDrawFont(playerid, pTextDraw[playerid][StarNumber], 3); PlayerTextDrawLetterSize(playerid, pTextDraw[playerid][StarNumber], 0.569999, 2.000000); PlayerTextDrawColor(playerid, pTextDraw[playerid][StarNumber], -1); PlayerTextDrawSetOutline(playerid, pTextDraw[playerid][StarNumber], 1); PlayerTextDrawSetProportional(playerid, pTextDraw[playerid][StarNumber], 1); new tdstring[32]; PlayerTextDrawShow(playerid,pTextDraw[playerid][StarNumber]); TextDrawShowForPlayer(playerid,gTextDraw[LightStar1]); format(tdstring, sizeof(tdstring), "%d", wlvl); PlayerTextDrawSetString(playerid, pTextDraw[playerid][StarNumber], tdstring); } else { HideWantedStars(playerid); } return 1; }
Hab dann im "Wanted-Gebe"-Befehl:
s_SetPlayerWantedLevel(pID,Spieler[pID][pWanteds]);Der "Stern" also LightStar1 wird angezeigt, aber die StarNumber nicht. Woran liegts?
-
Ich würde gerne Abfragen ob der Spieler schießt bzw. die Schüsse "zählen".
Das macht man ja mit:
https://wiki.sa-mp.com/wiki/OnPlayerWeaponShotNur ist bei uns die lagcomp auf off und im Wiki steht, dass es damit nicht funktioniert, was auch stimmt.
-
Guten Morgen,
ich glaube nicht, dass es sich lohnen wird.
Die meisten Leute halten sehr wenig von Godfather Scripts, auch wenn diese editiert wurden.
Außerdem bin ich der Meinung, dass es relativ einseitig wird, wenn sich auf dem Server alles nur um Bone County dreht.Deswegen spielen immer noch immer rund 100 Leute auf Godfather-Servern.
-
C
Alles anzeigenocmd:create(playerid, params[]) { new str[32], tmp[16]; if(sscanf(params, "s[32]{s}", str, tmp))return SendClientMessage(playerid, COLOR_GREY, "Benutze: /create [Pickup]"); if(strcmp(str, "Pickup", true) == 0) { new weaponid, ammo; if(sscanf(params,"s[32]ii",str, weaponid, ammo))return SendClientMessage(playerid, COLOR_GREY,"Benutze: /create pickup [WaffenID / ID] [Ammo / Wert]"); SendClientMessage(playerid,COLOR_GREY,"Klappt"); } return SendClientMessage(playerid, COLOR_GREY, "Benutze: /create [Pickup]");; }
Wenn ich nur "/create pickup" eingebe, dann zeigt der mir trotzdem noch "Benutze: /create [Pickup]" an.