Oder einfach lassen, als "Ausbruchsmöglichkeit"
Beiträge von VAM
-
-
Habe nicht verstanden was du gesagt hast.
pInfo[playerid][job]!=1 frägt ja : Wenn der Spieler nicht Job ID 1 hat..
-
Das würde ich auch empfehlen.
Allerdings anstatt RemovePlayerFromVehicle (das geht dort nämlich nicht):
TogglePlayerControllable(playerid, false);TogglePlayerControllable(playerid, true);Danke für deine Rückmeldung, jedoch kann ich trotzdem normal einsteigen und den Motor starten...
Der Code bei Jobfahrzeugen sieht jetzt so aus :Code
Alles anzeigenfor(new i=0; i<sizeof(PilotCar); i++) { if(vehicleid == PilotCar[i]) { if(pInfo[playerid][job]!=5) { TogglePlayerControllable(playerid, false); TogglePlayerControllable(playerid, true); SendClientMessage(playerid,GRAU,"Du darfst dieses Flugzeug nicht fliegen."); } else { SendClientMessage(playerid,GELB,"Du kannst deinen Flug mit /duty beginnen."); } } }
-
Ist es doch
Hier falls du dir es mal anschauen willst :
Code
Alles anzeigenublic OnPlayerStateChange(playerid, newstate, oldstate) { if(newstate==PLAYER_STATE_DRIVER) { for(new i=0; i<GetMaxPlayers(); i++) { if(!PlayerOnline(i) || gpv(i, "SpectateID")!=playerid)continue; PlayerSpectateVehicle(i, GetPlayerVehicleID(playerid), SPECTATE_MODE_NORMAL); break; } new vehicleid=GetPlayerVehicleID(playerid); if(!IsABike(vehicleid)){ SendClientMessage(playerid,WEIß,"{FFFA00}Du kannst das Fahrzeug mit {FF3C00}/motor{FFFA00} starten. Die Scheinwerfer können mit {FF3C00}/licht{FFFA00} angeschaltet werden."); } for(new i=0; i<sizeof(ahCars); i++) { if(ahCars[i][id_x]!=vehicleid)continue; //Verkauf SetPVarInt(playerid,"BuyCarID",i); new string[256]; format(string,sizeof(string),"Möchtest du dieses Fahrzeug kaufen\n \nKosten: %i$\nModell: %s\nMaximaler Tankinhalt: %d Liter",ahCars[i][c_preis],CarName[GetVehicleModel(vehicleid)-400],CarTanks[GetVehicleModel(vehicleid)-400]); ShowPlayerDialog(playerid,DIALOG_AUTOHAUS,DIALOG_STYLE_MSGBOX,"Autohaus",string,"Kaufen","Abbrechen"); } for(new i=0; i<sizeof(FahrschulCar); i++) { if(vehicleid!=FahrschulCar[i])continue; if(InFahrschule[playerid]) { if(FahrschulCP[playerid]==0) { //Starten SetPlayerCheckpoint(playerid, FahrschulCPs[FahrschulCP[playerid]][cpx], FahrschulCPs[FahrschulCP[playerid]][cpy], FahrschulCPs[FahrschulCP[playerid]][cpz], 4.0); JobCar[playerid]=vehicleid; PlayerTextDrawShow(playerid, TachoTd[playerid][0]); PlayerTextDrawShow(playerid, TachoTd[playerid][1]); PlayerTextDrawShow(playerid, TachoTd[playerid][2]); ClearPlayerChat(playerid); ClearPlayerChat(playerid); SendClientMessage(playerid, HBLAU, "* Die Fahrstunde hat begonnen. Bitte achte unten Links auf die Karte, dort wird dein Checkpoint angezeigt."); SendClientMessage(playerid, HBLAU, "* Fahre alle Checkpoints ab, und achte das dein Tempomat nicht mehr als 80 km/h anzeigt!"); SendClientMessage(playerid, HBLAU, "* Du darfst innerhalb der Stadt max. 80 KM/H fahren. Außerhalb begrenzt sich die Geschwindigkeit auf 110 KM/H"); SendClientMessage(playerid, HBLAU, "* Es ist Pflicht die rechte Fahrspur zu benutzen!"); spv(playerid,"TachoTimerID",SetTimerEx("TachoUpdate", 200, true, "i", playerid)); } return 1; } else { SendClientMessage(playerid,GRAU,"Du hast keine Schlüssel für dieses Fahrzeug!"); RemovePlayerFromVehicle(playerid); } } if(pInfo[playerid][autoschein]==0 && !InTutorial[playerid] && !InFahrschule[playerid]) { if(IsABike(GetPlayerVehicleID(playerid)))return 1; for(new i=0; i<sizeof(ahCars); i++) { if(ahCars[i][id_x]==vehicleid)return 1; } RemovePlayerFromVehicle(playerid); SendClientMessage(playerid,GRAU,"Du besitzt kein Führerschein!"); } for(new i=0; i<sizeof(BusCar); i++) { if(vehicleid != BusCar[i])continue; if(pInfo[playerid][job]!=1) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid,GRAU,"Du darfst dieses Fahrzeug nicht fahren."); }
-
Hey,
da ich Abfragen bei Job-Fahrzeugen durchführe, werden die ClientMessages normal ausgegeben, jedoch wird man einfach nicht herausgeworfen bzw. ejected.
Hier ein Beispiel :
Codefor(new i=0; i<sizeof(BusCar); i++) { if(vehicleid != BusCar[i])continue; if(pInfo[playerid][job]!=1) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid,GRAU,"Du darfst dieses Fahrzeug nicht fahren."); }
Alles klappt, nur man wird einfach nicht ejected bzw. rausgeworfen sondern kann weiterhin den Motor starten und los fahren.
Ist nicht nur beim Bus so, sondern auch bei Lieferautos / Müllautos etc.
@Jeffry an was könnte das liegen?
-
Danke !! Es klappt! Hatte schonmal ein THread erstellt,aber keiner hat mir geholfen!
-
Also es ist leider nicht das, sondern der Code ist so ( komplett ) :
Code
Alles anzeigenif(isAmTelen[playerid]) { if(Call_Anrufer[playerid]!=-1) { if(!PlayerOnline(Call_Anrufer[playerid]))return 1; SendClientMessage(Call_Anrufer[playerid],GRAU,"Du hörst nur noch ein Rauschen am anderen Ende der Leitung..."); isAmTelen[Call_Anrufer[playerid]]=0; Call_Anrufer[playerid]=-1; } else if(Call_Anrufen[playerid]!=-1) { if(!PlayerOnline(Call_Anrufen[playerid]))return 1; SendClientMessage(Call_Anrufen[playerid],GRAU,"Du hörst nur noch ein Rauschen am anderen Ende der Leitung..."); isAmTelen[Call_Anrufen[playerid]]=0; Call_Anrufen[playerid]=-1; pInfo[playerid][handykarte]-=gpv(playerid,"MussTeleZahlen"); } isAmTelen[playerid]=0; } if(killerid!=INVALID_PLAYER_ID) { if(!PlayerOnline(killerid))return 1; if(pInfo[killerid][fraktion]!=2 && pInfo[killerid][fraktion]!=3)return 1; if(Robber[playerid]==1) { Robber[playerid]=0; BankIsRobbed=0; BankRobbed=1; new str[128]; format(str,sizeof(str),"* Der Räuber %s wurde vom Beamten %s getötet. Der Bankraub ist gescheitert.",PlayerName(playerid), PlayerName(killerid)); SendClientMessageToAll(HBLAU,str); SetTimer("BankRobReset", 10800*1000, false); } }
Also soll ich einfach alle "return 1;" entfernen?
-
Danke für die Rückmeldung,
setzt ein return 1; nicht die komplette Funktion aus?
Egal wo?
Wenn ja, habe ich im Code dass wenn man im Anruf ist dass alles abgebrochen wird, und da drinnen sind auch mehrere Returns 1; drinnen.
Code
Alles anzeigen////////////////////////////////////////////////////////// // BIS HIERHIN KLAPPT PRINT printf("test"); /////////////////////////////////////////////////////// //Anrufen abbrechen if(isAmTelen[playerid]) { if(Call_Anrufer[playerid]!=-1) { if(!PlayerOnline(Call_Anrufer[playerid]))return 1; SendClientMessage(Call_Anrufer[playerid],GRAU,"Du hörst nur noch ein Rauschen am anderen Ende der Leitung..."); isAmTelen[Call_Anrufer[playerid]]=0; Call_Anrufer[playerid]=-1; } else if(Call_Anrufen[playerid]!=-1) { if(!PlayerOnline(Call_Anrufen[playerid]))return 1; SendClientMessage(Call_Anrufen[playerid],GRAU,"Du hörst nur noch ein Rauschen am anderen Ende der Leitung..."); isAmTelen[Call_Anrufen[playerid]]=0; Call_Anrufen[playerid]=-1; pInfo[playerid][handykarte]-=gpv(playerid,"MussTeleZahlen"); } isAmTelen[playerid]=0; }
-
-
Danke für deine Rückmeldung, hab das gemacht und die neue .amx hochgeladen,
jedoch kriege ich immernoch keine Wanteds / playerid kommt nicht ins Krankenhaus.
-
Hey,
also ich habe im Script die Funktion dass man beim töten eines Spielers 2 Wanteds bekommt und die Cops eine Nachricht davon sowie auch die Medics.
Die Wantedvergabe sieht wie folgt aus :
Code
Alles anzeigenif(PlayerOnline(killerid)) { if(pInfo[killerid][fraktion]!=2 && pInfo[killerid][fraktion]!=3)return SetPlayerWantedLevel(killerid, GetPlayerWantedLevel(killerid)+2); if(pInfo[killerid][fraktion]!=2 && pInfo[killerid][fraktion]!=3)return SendClientMessage(killerid, DROT, "Du hast ein Verbrechen begangen ( Mord ), Zeuge : Niemand"); new infostr[128]; format(infostr,sizeof(infostr),"Dein Wantedlevel: %d", wanteds[killerid]); if(pInfo[killerid][fraktion]!=2 && pInfo[killerid][fraktion]!=3)return SendClientMessage(killerid, GELB, infostr); new meldung[128], zne[64]; GetPlayer3DZone(killerid, zne, sizeof(zne)); format(meldung,sizeof(meldung),"* Meldung: Verdächtiger %s, Verbrechen: Mord in %s.",PlayerName(killerid), zne); for(new i=0; i<GetMaxPlayers(); i++) { if(!PlayerOnline(i))continue; if(pInfo[i][fraktion]!=2 && pInfo[i][fraktion]!=3)continue; SendClientMessage(i, 0x8080FFFF, meldung); } }
Davor war die Abfrage wenn killerid FraktionsID 2 + 3 ist nicht drinnen ( LSPD + FBI ).
Das heißt, wenn ich einen Zivi als Zivi killen würde, landet der playerid nicht im Krankenhaus und killerid kriegt keine Wanteds.
Aber wenn ich als Cop jemanden getötet habe, bekam ich Wanteds ( NUR ALS COP ) und playerid landete normal im Krankenhaus.
Als ich die Abfrage reingemacht habe, habe ich auch als Cop keine Wanteds und playerid landete auch nicht im Krankenhaus.Also man bekommt einfach keine Wanteds wenn man Leute tötet.
Bitte helft mir
-
Danke dir, hab das wohl übersehen.
-
Hey,
habe mein Textdraw neu gemacht und eins dazu gefügt ( in 2 Teilen -> Eins das Stern und das andere die Anzahl der Wanteds ).
Habe ein Array Error also die müssen "indiziert" werden, was ich nicht nicht gerade nicht verstehe.
Code
Alles anzeigenWantedTd = CreatePlayerTextDraw(playerid,523.000000, 99.000000, "1"); PlayerTextDrawBackgroundColor(playerid,WantedTd[playerid], 255); PlayerTextDrawFont(playerid,WantedTd[playerid], 3); PlayerTextDrawLetterSize(playerid,WantedTd[playerid], 0.719999, 2.299999); PlayerTextDrawColor(playerid,WantedTd[playerid], -1); PlayerTextDrawSetOutline(playerid,WantedTd[playerid], 1); PlayerTextDrawSetProportional(playerid,WantedTd[playerid], 1); PlayerTextDrawSetSelectable(playerid,WantedTd[playerid], 0); SternTd = CreatePlayerTextDraw(playerid,479.000000, 100.000000, "[]"); PlayerTextDrawBackgroundColor(playerid,SternTd[playerid], 255); PlayerTextDrawFont(playerid,SternTd[playerid], 2); PlayerTextDrawLetterSize(playerid,SternTd[playerid], 0.639999, 2.200000); PlayerTextDrawColor(playerid,SternTd[playerid], -371703553); PlayerTextDrawSetOutline(playerid,SternTd[playerid], 1); PlayerTextDrawSetProportional(playerid,SternTd[playerid], 1); PlayerTextDrawSetSelectable(playerid,SternTd[playerid], 0);
Weiß jemand was da fehlt?CodeC:\Users\Safa\Desktop\Server\gamemodes\gamemode.pwn(3165) : error 033: array must be indexed (variable "WantedTd") C:\Users\Safa\Desktop\Server\gamemodes\gamemode.pwn(3174) : error 033: array must be indexed (variable "SternTd") Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 2 Errors.
-
Mit einem MapEditor zu dem jeweiligen Interior fliegen mit den W/A/S/D-Tasten und dann Objekte entfernen / platzieren.
-
Hätte gerne gewusst ob man sich das bei dir erwerben kann oder man es sich herunterladen kann.
-
-
Zeig uns mal den /explode Befehl.
Also bei normalen Toden klappt es nicht, aber z.B bei /explode klappt es?
Code
Alles anzeigenocmd:explode(playerid,params[]) { if(!IsAdmin(playerid,1)) return noaccess if(!strlen(params))return SendClientMessage(playerid,GRAU,"Nutze: /explode [id]"); new pid = strval(params); if(!IsPlayerConnected(pid))return SendClientMessage(playerid,GRAU,"Der ausgewählte Spieler ist derzeit nicht ONLINE."); new Float:x, Float:y, Float:z; GetPlayerPos(pid, x, y, z); CreateExplosion(x, y, z, 12, 10.0); return 1; }
Ja also das war jetzt nur was ich zufällig herausgefunden habe als ich einen Kumpel aus Spaß /exploded habe, da klappte es aufeinmal.
Aber so normal wenn er getötet wird mit ner Waffe, passiert nichts ( keine Wanteds / kein Medic-Nachricht Ausgabe etc. ))...Das muss doch eigentlich stink normal klappen !
-
Hey,
aus irgendeinem Grund klappen die Funktionen bei OnPlayerDeath garnicht.
Wenn ich z.B einen Spieler mit /explode töte, dann klappt wunderbar die Medic-Funktion.
Jedoch wenn ich einen Spieler normal töte, kriege ich keine Wanteds etc.
Weiß jemand an was dies liegen könnte? Der Kill wird sozusagen iwie nicht erkannt...
Hier mein kompletter OPD-Code :Code
Alles anzeigenpublic OnPlayerDeath(playerid, killerid, reason) { SetPVarInt(playerid, "ImHaus", -1); spv(playerid,"Carrying",0); spv(playerid,"Grabbed",0); spv(playerid,"Cuffed",0); //************************************************************************* //Tot-Position abfragen & speichern new Float:ppos[3]; GetPlayerPos(playerid, ppos[0], ppos[1], ppos[2]); pTotPos[playerid][0]=ppos[0]; pTotPos[playerid][1]=ppos[1]; pTotPos[playerid][2]=ppos[2]; //************************************************************************* //Bank-System abbrechen (wenn) und Fahrschule ebenso IstInBank[playerid]=false; if(InFahrschule[playerid]) { SetVehicleToRespawn(JobCar[playerid]); JobCar[playerid]=INVALID_VEHICLE_ID; FahrschulCP[playerid]=0; InFahrschule[playerid]=false; } //************************************************************************* //In Animation if(InAnim[playerid]==1) { InAnim[playerid]=0; StopLoopingAnim(playerid); TextDrawHideForPlayer(playerid,txtAnimHelper); } //Gang-War Kill System for(new i=0; i<sizeof(GangZoneInfo); i++) { if(!IsPlayerInGangZone(killerid, i))continue; if(!GangZoneInfo[i][inwar])continue; for(new gw=0; gw<sizeof(GangWarInfo); gw++) { if(GangWarInfo[gw][zoneid]!=i)continue; if(pInfo[killerid][fraktion]==GangWarInfo[gw][angreifer])GangWarInfo[gw][kills_angreifer]++; else if(pInfo[killerid][fraktion]==GangZoneInfo[i][gzowner])GangWarInfo[gw][kills_owner]++; break; } break; } //Anrufen abbrechen if(isAmTelen[playerid]) { if(Call_Anrufer[playerid]!=-1) { if(!PlayerOnline(Call_Anrufer[playerid]))return 1; SendClientMessage(Call_Anrufer[playerid],GRAU,"Du hörst nur noch ein Rauschen am anderen Ende der Leitung..."); isAmTelen[Call_Anrufer[playerid]]=0; Call_Anrufer[playerid]=-1; } else if(Call_Anrufen[playerid]!=-1) { if(!PlayerOnline(Call_Anrufen[playerid]))return 1; SendClientMessage(Call_Anrufen[playerid],GRAU,"Du hörst nur noch ein Rauschen am anderen Ende der Leitung..."); isAmTelen[Call_Anrufen[playerid]]=0; Call_Anrufen[playerid]=-1; pInfo[playerid][handykarte]-=gpv(playerid,"MussTeleZahlen"); } isAmTelen[playerid]=0; } if(killerid!=INVALID_PLAYER_ID) { if(!PlayerOnline(killerid))return 1; if(pInfo[killerid][fraktion]!=2 && pInfo[killerid][fraktion]!=3)return 1; if(Robber[playerid]==1) { Robber[playerid]=0; BankIsRobbed=0; BankRobbed=1; new str[128]; format(str,sizeof(str),"* Der Räuber %s wurde vom Beamten %s getötet. Der Bankraub ist gescheitert.",PlayerName(playerid), PlayerName(killerid)); SendClientMessageToAll(HBLAU,str); SetTimer("BankRobReset", 10800*1000, false); } } if(Robber[playerid]==1) { Robber[playerid]=0; BankIsRobbed=0; BankRobbed=1; new str[128]; format(str,sizeof(str),"* Der Bankräuber %s wurde getötet. Der Bankraub ist gescheitert.",PlayerName(playerid), PlayerName(killerid)); SendClientMessageToAll(HBLAU,str); SetTimer("BankRobReset", 10800*1000, false); } //Wanteds geben if(PlayerOnline(killerid)) { SetPlayerWantedLevel(killerid, GetPlayerWantedLevel(killerid)+2); SendClientMessage(killerid, DROT, "* Du hast ein Verbrechen begangen: Mord."); new infostr[128]; format(infostr,sizeof(infostr),"Dein Wantedlevel: %d", wanteds[killerid]); SendClientMessage(killerid, GELB, infostr); new meldung[128], zne[64]; GetPlayer3DZone(killerid, zne, sizeof(zne)); format(meldung,sizeof(meldung),"* Meldung: Verdächtiger %s, Verbrechen: Mord in %s.",PlayerName(killerid), zne); for(new i=0; i<GetMaxPlayers(); i++) { if(!PlayerOnline(i))continue; if(pInfo[i][fraktion]!=2 && pInfo[i][fraktion]!=3)continue; SendClientMessage(i, 0xFFCF91FF, meldung); } } //Taxi Fahrer if(IsTaxi[playerid]==1) { SetVehicleToRespawn(JobCar[playerid]); Delete3DTextLabel(vehicle3Dtext[JobCar[playerid]]); IsTaxi[playerid]=0; TaxiKosten[playerid]=0; TaxiSitz[playerid][0]=0; TaxiSitz[playerid][1]=0; TaxiSitz[playerid][2]=0; Taxameter[playerid][0]=0; Taxameter[playerid][1]=0; Taxameter[playerid][2]=0; TaxiSekunden[playerid][0]=0; TaxiSekunden[playerid][1]=0; TaxiSekunden[playerid][2]=0; } //************************************************************************* //Ins Krankenhaus + Timer berechnung ob mehr als 3 Medics on sind, um länger oder kürzer ins KH zu schicken. //Tot Pickup und Zeugensystem new count=0; for(new i=0; i<GetMaxPlayers(); i++) { if(!PlayerOnline(i))continue; if(pInfo[i][fraktion]!=5)continue; count++; } pInfo[playerid][tot]=1; if(count>3)pInfo[playerid][totsek]=180; else pInfo[playerid][totsek]=60; new basic_floats; IstTot[playerid]=true; GetPlayerPos(playerid,x,y,z); new str[230],Hour, Minute, Second,zeuge[10*MAX_PLAYER_NAME+20], zcount=0; for(new i=0; i<GetMaxPlayers(); i++) { if(!PlayerOnline(i))continue; if(!IsPlayerInRangeOfPoint(i,20.0,x,y,z))continue; if(GetPlayerState(playerid)==PLAYER_STATE_SPECTATING)continue; if(i==playerid || i==killerid)continue; zcount++; if(zcount<2)format(zeuge,sizeof(zeuge),"%s",PlayerName(i)); else format(zeuge,sizeof(zeuge),"%s / %s",zeuge, PlayerName(i)); } gettime(Hour, Minute, Second); format(str,sizeof(str),"† %s †\n%02d:%02d:%02d\nZeuge: %s", PlayerName(playerid),Hour, Minute, Second,zeuge); if(killerid!=INVALID_PLAYER_ID && pInfo[killerid][fraktion]==2)format(str,sizeof(str),"† %s †\n%02d:%02d:%02d", PlayerName(playerid),Hour, Minute, Second,zeuge); TotLabel[playerid]=Create3DTextLabel(str,WEIß,x,y,z,6.0, GetPlayerVirtualWorld(playerid),0); TotPickup[playerid]=CreatePickup(1254,1,x,y,z,-1); //************************************************************************* //Wenn keine Wanteds, eine Meldung an Medics rausgeben. if(GetPlayerWantedLevel(playerid)==0) { new zone[MAX_ZONE_NAME]; GetPlayer2DZone(playerid, zone, MAX_ZONE_NAME); format(str,sizeof(str),"* Der Spieler %s benötigt einen Krankenwagen in %s. (/medic %i) Noch ca. %i Sekunden",PlayerName(playerid),zone,playerid,pInfo[playerid][totsek]); for(new i=0; i<GetMaxPlayers(); i++) { if(pInfo[i][fraktion]!=6)continue; SendClientMessage(i,0xFFCF97FF,str); } } //************************************************************************* //Mode dem Killer hinzu setzen und wenn er wanteds hat, in den Knast. //Und dem player die Tode hinzu setzen if(killerid!=INVALID_PLAYER_ID && killerid != playerid && AdminDuty[killerid]==0) { pInfo[killerid][morde]++; } if(killerid!=INVALID_PLAYER_ID) { if(pInfo[killerid][fraktion]==2 || pInfo[killerid][fraktion]==3) { if(GetPlayerWantedLevel(playerid)!=0) { pInfo[playerid][inknast]=1; pInfo[playerid][knasttime]=GetPlayerWantedLevel(playerid) * minprowanted; pInfo[killerid][payday]+=1500; FrakInfo[pInfo[playerid][fraktion]][kasse]-=1500; ac_GivePlayerMoney(playerid, -GetPlayerWantedLevel(playerid)*1000); SetPlayerWantedLevel(playerid,0); } } } pInfo[playerid][tode]++; return 1; }
-
/makeleader [deineID] [FraktionsID sprich Feuerwehr-ID)
oder /setleader, bin mir grad nicht sicher
-
Inhalt:
> Login & Register System[/font]
[font='"']> Adminsystem( 5 Ränge )
> Premium System( 2 Ränge )
> Dynamisches Haussystem
> Supportsystem( Ticketsystem )
> ATM System( Banksystem; Ein -& Auszahlung, Überweisung )
> Statistiksystem[/font]
> Prestigesystem
> Anti-Cheat-System( Anti- Armour, Money, Waffen, C-Bug-Hack )
> Mathequizsystem( Alle 10 - 15 Minuten kommt ein beliebiges Mathequiz )
> Killstreaksystem( 3er, 6er, 9er, 12er, 15er )
> Headshotsystem( Nur mit Sniper )
> Hitsoundsystem
[font='"']> Admin & User Befehle ....[/font]Das sollte alles drinne sein.(Kostenlos Wenns geht)
Keiner wird hier seinen Arsch aufreißen und dir was kostenlos machen. Glaubst du doch selber nicht oder dass du die ganze Arbeit die da drin steckt einfach hinter geworfen bekommst.