Du weist "modelid" auch nichts zu...
Mach es so:
vehicleid = GetPlayerVehicleID(playerid);
modelid = GetVehicleModel(vehicleid);
Du weist "modelid" auch nichts zu...
Mach es so:
vehicleid = GetPlayerVehicleID(playerid);
modelid = GetVehicleModel(vehicleid);
Ich !glaube! das es so eine Abfrage nicht gibt, aber du könntest einen stock erstellen, z.B. so:
stock IsABoat(vehicleid)
{
if(vehicleid == BootID1 || vehicleid == BootID2 || vehicleid == BootID3 || usw..)return 1;
return 0;
}
WantedPoints[pID] += neuewanteds;
So irgendwie
OnPlayerConnect(..)
{
duell[playerid] = 9999;
return 1;
}
ocmd:duell(playerid,params[])
{
new string[256], pname[MAX_PLAYER_NAME], user;
GetPlayerName(playerid,pname,sizeof(pname));
if(sscanf(params,"u",user))return SendClientMessage(playerid,grau,"Benutze: /duell [Player/ID]");
duell[user] = playerid;
SendClientMessage(playerid,grau,"Deine Duell Anfrage wurde gesendet.");
format(string,sizeof(string),"%s hat dich zu einem Duell herausgefordert! Tippe /acceptduell um das Duell zu akzeptieren.",pname);
SendClientMessage(user,grau,string);
return 1;
}
ocmd:acceptduel(playerid,params[])
{
new string[126];
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
if(duell[playerid] == 9999)return SendClientMessage(playerid,grau,"Keiner hat dich zu einem Duell herausgefordert!");
SetPlayerPos(duell[playerid],bla,bla,bla);
SetPlayerPos(playerid,bla,bla,bla);
SendClientMessage(playerid,grau,"Du hast die Duell Anfrage akzeptiert.");
format(string,sizeof(string),"%s hat die Duell Anfrage akzeptiert.",pname);
SendClientMessage(duell[playerid],grau,string);
duell[playerid] = 9999;
return 1;
}
Über Wine denke ich schon, aber du kannst ja auf eine Partition Windows haben und auf der anderen eben
Linux
du musst statt minx, miny usw.. natürlich deine koordinaten eintragen
//Edit: Schau dir mal das Tut an: http://forum.sa-mp.com/showthread.php?t=66300
Du brauchst diesen stock:
stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx && x < maxx && y > miny && y < maxy) return 1;
return 0;
}
Jetzt kannst du mit
IsPlayerInArea(i,Float:minx, Float:maxx, Float:miny, Float:maxy);
abfragen
Das ist unnötige Zeilenverschwendung...
Mach es so:
if(pickupid == yakheal)
{
if(PlayerInfo[playerid][pMember] != 6 || PlayerInfo[playerid][pLeader] != 6)return SendClientMessage(playerid,COLOR_WHITE,"Du kannst dich hier nicht heilen!");
SetPlayerHealth(playerid,100.0);
SendClientMessage(playerid,COLOR_WHITE,"Du hast dich geheilt.");
}
public TIMER()
{
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerInArea(i,....)
{
//i ist nun so gefiltert, das i nurnoch die sind, die in der zone sind..
}
}
}
Hier verstehen einige den Unterschied zwischen "Schließen" und "Thema als Erledigt markieren" nicht...
Wenn man einen Thread schließt, ist es unmöglich dort weiterhin zu schreiben ( Auser Personen mit bestimmten Rechten )
Wenn man ein Thema als erledigt markiert, ist, anstatt ein rotes '!' ein grüner Hacken neben dem Threadname...
Also ich finde es z.T. unnötig, aber würde die Moderatoren usw. ja auch etwas entlasten.
Setz mal einen print, wenn der Spieler den Pickup betritt und sag was rauskommt, ebenso bei
GameTextForPlayer, also z.b. so:
OnPlayerPickUpPickup(...)
{
print("aufgepickt");
}
GameTextForPlayer(...)
print("gametext gesetzt");
Du gehst in den Pro Labs rein, stellst dich dorthin, an dem du dein Info Zeichen haben willst
und machst '/save ProLabs'
Nun gehst du unter Eigene Dateien/GTA San Andreas Userfiles/savedpositions.txt und suchst
nach 'Prolabs'.
Die ersten Koordinaten sind die Koordinaten die du brauchst, markiere sie.
Nun gehst du zu Pawno und erstellst ein neues Pickup:
new pickup;
pickup = CreatePickup(1239,1,DeinX,DeinY,DeinZ);
Jetzt gehst du unter OnPlayerPickupPickup:
if(pickupid == pickup)
{
GameTextForPlayer(playerid,"Wenn du dein Aussehen ändern möchtest, tippe bitte '/skin'",2000,6);
}
Es geht auch, wenn man anstatt
PlayerSpectateVehicle
PlayerSpectatePlayer
macht.
if(dialogid==4)
{
if(response)
{
if(listitem == 0)
{
ShowPlayerDialog(playerid,SW,DIALOG_STYLE_LIST,"","","","");
return 1;
}
if(listitem == 1)
{
ShowPlayerDialog(playerid,SG,DIALOG_STYLE_LIST,"","","","");
return 1;
}
if(listitem == 2)
{
ShowPlayerDialog(playerid,MP,DIALOG_STYLE_LIST,"","","","");
return 1;
}
if(listitem == 3)
{
ShowPlayerDialog(playerid,SS,DIALOG_STYLE_LIST,"","","","");
return 1;
}
if(listitem == 4)
{
ShowPlayerDialog(playerid,WW,DIALOG_STYLE_LIST,"","","","");
return 1;
}
}
}
Poste mal die zeile 3606
Ein "Selfmade" ist ab dem Zeitpunkt an dem du Copy & Paste bzw. etwas benutzt, das
dir jemand anderer gemacht hat, kein "Selfmade" mehr.
Also im Prinzip ist es schon kein Selfmade mehr.
Sry 4 Spam
new name[MAX_PLAYER_NAME], string[256], frakname[64];
GetPlayerName(pID,name,sizeof(name));
switch(fID)
{
case 0:{ frakname="Keine";}
case 1:{ frakname="FrakName1";}
case 2:{ frakname="FrakName2";}
case 3:{ frakname="FrakName3";}
//usw..
}
format(string,sizeof(string),"%s wurde zum Leader der Fraktion '%s' gemacht.",name,frakname);
SendClientMessageToAll(0xffffffff,string);
Bitteschön.
Der Thread ist auch schon fast 2 Jahre alt..
new name[MAX_PLAYER_NAME], string[256];
GetPlayerName(pID,name,sizeof(name));
format(string,sizeof(string),"%s wurde zum Leader der Fraktion '%d' gemacht.",name,fID);
SendClientMessageToAll(0xffffffff,string);
Kannst noch mit switch(fID) Fraktionsnamen hinzufügen statt der fID..
Liegt wahrscheinlich daran:
if(Mobile[giveplayerid] == 255)
Ich schätze mal so ist es richtig: ( Zeile 74 in deinem Schnipsel )
if(Mobile[giveplayerid] != 255)