Poste bitte den Code der da dazu gehört, ohne Code kann man nichts dazu sagen.
Beiträge von Jeffry
-
-
Du musst die Include in /pawno/includes/ einfügen und dann deinen Gamemode neu kompilieren.
Am besten du öffnest ihn über die pawno.exe im /pawno/ Verzeichnis.Erst dann werden die Daten der Include in die amx Datei übernommen.
-
Aktualisiere deine ocmd Include:
ocmd 2.1.1 [ Update 3.11.2013 ] -
-
Das sieht korrekt aus.
Dann poste bitte den Befehl, den du eingegeben hast, als du die Bilder gemacht hast.Dass wir uns richtig verstehen: Anstatt dem P9B321... im Chat soll Puesko2 stehen?
-
Wie sieht das enum zu SpielerInfo aus?
-
Wie sieht der Code dazu aus?
-
Das liegt daran, dass du es in die gleiche Variable (myPickup) schreibst, so vergisst der Server die erste ID.
Wenn du mehrere Pickups erstellen willst, dann musst du Arrays nutzen, und entsprechend definieren, wie viele Pickups erstellt werden können.So zum Beispiel:
C
Alles anzeigennew bool:myPickup[MAX_PICKUPS]; public OnPlayerPickUpPickup(playerid, pickupid) { printf("OnPlayerPickkUp aufgerufen (%d -> %d)", pickupid, myPickup[pickupid]); if(myPickup[pickupid]) { printf("Gebe Geld."); GivePlayerMoney(playerid,5000); SendClientMessage(playerid,0xFFFF0080,"Test"); DestroyPickup(pickupid); myPickup[pickupid] = false; } return 1; } CMD:pickuptest(playerid,params[]) { print("Befehl aufgerufen"); new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); new id = CreatePickup(1212, 1, x, y+2, z, -1); myPickup[id] = true; printf("Erstelle ID %d", myPickup); return 1; } -
Versuche es so:
C
Alles anzeigenocmd:givewanteds(playerid,params[]) { new pID,wanteds,grund[35],str[128]; if(PI[playerid][pFrak] != 1 || PI[playerid][pRang] < 2)return SCM(playerid,frot,"[FEHLER]: Du bist darfst diesen Befehl nicht ausführen!"); if(sscanf(params,"dds[35]",pID,wanteds,grund))return SCM(playerid,frot,"[FEHLER]: /givewanteds [SpielerID] [Wanteds] [Grund]"); if(PI[playerid][pRang] < 4 && IsPlayerOfficial(pID))return SCM(playerid,frot,"[FEHLER]: Du darfst einem Staatsbeamten keine Wanteds geben!"); if(aduty[pID] == 1)return SCM(playerid,frot,"[FEHLER]: Du darfst einem Admin OnDuty keine Wanteds geben!"); if(IsPlayerInAnyVehicle(playerid)) { if(IsCopCar(GetPlayerVehicleID(playerid))) { if(wanteds > 60 || wanteds < 1)return SCM(playerid,frot,"[FEHLER]: Du musst zwischen 1 und 60 Wanteds vergeben"); } else { if(wanteds > 5 || wanteds < 1)return SCM(playerid,frot,"[FEHLER]: Außerhalb eines Cop Cars musst du zwischen 1 und 5 Wanteds vergeben!"); } } else { if(wanteds > 5 || wanteds < 1)return SCM(playerid,frot,"[FEHLER]: Außerhalb eines Cop Cars musst du zwischen 1 und 5 Wanteds vergeben!"); } if((PI[pID][pWanteds] + wanteds) >= 60) { PI[pID][pWanteds] = 60; format(str,sizeof(str),"[WANTEDS]: Der Beamte %s hat die Wanteds des Spielers %s auf 60 hochgestuft! ALARMSTUFE!",GPlayerName(playerid),GPlayerName(pID)); SendOfficialMessage(str); SCM(playerid,iblau,"[INFO]: Du hast die Wanteds des Spielers %s auf 60 hochgesetzt!",GPlayerName(pID)); SCM(playerid,wrot,"[WARNUNG]: Der Beamte %s hat deine Wanteds auf 60 hochgesetzt! Grund: %s",GPlayerName(playerid),grund); } else { PI[pID][pWanteds] += wanteds; format(str,sizeof(str),"[WANTEDS]: Der Beamte %s hat dem Spieler %s %d Wanteds gegeben! Wanteds: %d Grund: %s",GPlayerName(playerid),GPlayerName(pID),wanteds,PI[pID][pWanteds],grund); SendOfficialMessage(str); SCM(playerid,iblau,"[INFO]: Du hast dem Spieler %s %d Wanteds gegeben! Wanteds: %d Grund: %s",GPlayerName(pID),wanteds,PI[pID][pWanteds],grund); SCM(pID,wrot,"[WARNUNG]: Du hast von dem Beamten %s %d Wanteds bekommen! Wanteds : %d Grund: %s",GPlayerName(playerid),wanteds,PI[pID][pWanteds],grund); } return 1; } -
Du musst es nach dem Aufnehmen zerstören, mit DestroyPickup.
-
Du erstellst das Pickup mit der ID 71, läufst aber in das Pickup der ID 3.
Starte mal deinen Server komplett neu, und versuche es mit dem Pickup Typ 1 anstatt der 4 in CreatePickup. -
Komisch. Was steht so im Log?
C
Alles anzeigenpublic OnPlayerPickUpPickup(playerid, pickupid) { printf("OnPlayerPickkUp aufgerufen (%d == %d)", pickupid, myPickup); if(pickupid == myPickup) { printf("Gebe Geld."); GivePlayerMoney(playerid,5000); SendClientMessage(playerid,0xFFFF0080,"Test"); } return 1; } CMD:pickuptest(playerid,params[]) { print("Befehl aufgerufen"); new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); myPickup = CreatePickup(1212, 4, x, y+2, z, -1); printf("Erstelle ID %d", myPickup); return 1; } -
Setze dir mal einen print hin und schaue ob das Callback überhaupt aufgerufen wird.
Lasse dir gegebenenfalls die beiden IDs (pickupid und myPickup) im Print ausgeben, und schaue ob die übereinstimmen. -
Du musst die Pickup ID nehmen:
C
Alles anzeigennew myPickup; CMD:pickuptest(playerid,params[]) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); myPickup = CreatePickup(1212, 4, x, y+2, z, -1); return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { if(pickupid == myPickup) { GivePlayerMoney(playerid, 1000); } return 1; }@Simon2202
Mache bitte einen Thread auf, das ist keine kleine Scripting Frage. -
Wie sieht es so aus?
C
Alles anzeigenocmd:fchat(playerid,params[]) { if(PI[playerid][pFrak] >= 1) { new msg[145],rangname[20],frakid = PI[playerid][pFrak]; if(sscanf(params,"s[145]",msg)) return SCM(playerid,frot,"[FEHLER]: /fchat [MSG]"); printf("Rang: %d Leader: %d Frak: %d", PI[playerid][pRang], PI[playerid][pLeader], frakid); printf("Eingabe: %s", msg); if(PI[playerid][pRang] == 1) format(rangname, 20, FI[frakid][rname1]); else if(PI[playerid][pRang] == 2) format(rangname, 20, FI[frakid][rname2]); else if(PI[playerid][pRang] == 3) format(rangname, 20, FI[frakid][rname3]); else if(PI[playerid][pRang] == 4) format(rangname, 20, FI[frakid][rname4]); else if(PI[playerid][pRang] == 5) format(rangname, 20, FI[frakid][rname5]); printf("rangname: %s / %s", rangname, FI[frakid][rname5]); if(PI[playerid][pLeader] > 0) { format(msg,sizeof(msg),"(([L]%s %s: %s))",rangname,GPlayerName(playerid),msg); } else { format(msg,sizeof(msg),"((%s %s: %s))",rangname,GPlayerName(playerid),msg); } printf("msg: %s", msg); SendFrakMessage(PI[playerid][pFrak],msg); return 1; } SCM(playerid,frot,"[FEHLER]: Du befindest dich in keiner Fraktion!"); return 1; } -
Wie sieht deine GetRankName Funktion aus?
-
-
Zwischen 0 und 4.
-
-