habe ein kleines problem in meinem script. und zwar möchte ich einen prozent betrag ausrechnen lassen. z.B:
50/100*5
jetzt habe ich das problem das bei 50/100 0.5 rauskommt.. und bei 0.5 * 5 kommt bei pawno 0 raus.
gibts es irgendwie ein include mit der man mit , rechnen kann in pawno. oder irgendeine idee wie man das machen könnte?
bei beträgen über 100 klappt es weil dann 100/100 = 1 rauskommt.
danke im vorraus
Beiträge von Tround
-
-
bin zu neuen erkenntnissen gekommen. das geld wird nicht beim accountladen verdoppelt sondern wenn man auf den spawn button drückt.
so.. nun habe ich mal den gesamtem inhalt unter onplayerspawn und unter onplayerrequest class ausgeklammert. jedoch das problem besteht immernoch. -
Vielleicht hast du ein Fehler bei der Speicherung der Daten.nunja wenn dies der fall ist würde es ja im plus geld bereich auch verdoppeln.
bin total ratlos
-
moin
ich habe da heute etwas in meinem script festgestellt was ich überhaupt nicht blicke!
wenn ich mit meinem geld im minus bin und neu connecte oder server neustarte verdoppelt sich der betrag beim spawnen.
also wenn ich mich mit -200$ auslogge und neu connecte ändert sich mein geld beim spawnen auf -400$. im plus geld bereich passiert das nicht.
da ich das script selber geschrieben habe bin ich mir 99,9% sicher das ich so etwas nicht eingebaut habe.
unter onplayerconnect oder onplayerspawn finde ich auch absolut nichts was damit zu tun haben könnte.
kennt noch jemand dieses problem? liegt es vielleicht an samp? -
sieht bei mir ähnlich aus bis auf das =
stock isPlayerAnAdmin(playerid,rang)
{
if(IsPlayerConnected(playerid))
{
if(GetPVarInt(playerid,"AdminLevel")>=rang)return 1;
}
return 0;
}
wenn das nicht klappt probier mal das zu ändern
else if(isPlayerAnAdmin(playerid,3))
{
SendClientMessage(playerid,orange,"Serverowner: /setadmin | /setheal | /setarmor | /takemoney | /givemoney | /setkills");
}
da fehlte noch das else -
wie sieht dei isPlayerAnAdmin stock oder public aus
-
#define DIALOG_WAFFEN 570
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp("/waffenbar", cmdtext, true, 10) == 0)
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, 674.6451, 1845.8447, 5.3527))
{
ShowPlayerDialog(playerid, 570, DIALOG_STYLE_LIST, "Waffenbar", "Silenced Pistol - 750$\nDesert Eagle - 1500$\nColt - 500$", "Kaufen", "Schließen");
return 1;
}
else
{
SendClientMessage(playerid, 0xB4B5B7FF, "Du bist nicht im Erdgeschoss an der Waffenbar!");
}
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 570)
{
if(response==1)
{
if(listitem == 0)
{
GivePlayerWeapon(playerid, 23, 20);
SendClientMessage(playerid, 0xB4B5B7FF, "Du hast eine sPistol mit 20 Schuss erhalten.");
SendClientMessage(playerid, 0xB4B5B7FF, "Du hast 750$ bezahlt. Mach keine Dummheiten!");
GivePlayerMoney(playerid, -750);
}
if(listitem == 1)
{
GivePlayerWeapon(playerid, 24, 20);
SendClientMessage(playerid, 0xB4B5B7FF, "Du hast eine Desert Eagle mit 20 Schuss erhalten.");
SendClientMessage(playerid, 0xB4B5B7FF, "Du hast 1500 bezahlt. Mach keine Dummheiten!");
GivePlayerMoney(playerid, -1500);
}
if(listitem == 2)
{
GivePlayerWeapon(playerid, 22, 20);
SendClientMessage(playerid, 0xB4B5B7FF, "Du hast einen Colt mit 20 Schuss erhalten.");
SendClientMessage(playerid, 0xB4B5B7FF, "Du hast 500$ bezahlt. Mach keine Dummheiten!");
GivePlayerMoney(playerid, -500);
}
}
}
return 1;
}so vlcht
-
probiers mal so
if(dialogid == 1337)
{
if(response==1)
{
if(listitem == 0)
{
}
if(listitem == 1)
{
}
if(listitem == 2)
{
}
}
} -
probier mal das falls du es noch nicht hast:
public OnPlayerRequestClass(playerid, classid)
{
if(IsPlayerNPC(playerid))return 1;oder/und
public OnPlayerConnect(playerid)
{
if(IsPlayerNPC(playerid))return 1; -
für das schnelle laufen machste das hier unter public OnGameModeInit()
UsePlayerPedAnims();und damit der verkäufer im ammu nation an der theke steht machste das unter onplayerpickup ammu nation
SetPlayerShopName(playerid,"AMMUN1"); -
wenn nur die dialoge nicht richtig funktoinieren kann es sein dass die dialoge in dem filterscript und deinem gamemode mit der gleichen zahl definiert sind.
-
wie sieht die zeile darüber aus
-
du mussten den public forwarden
oben im script:
forward OnPlayerPrivmsg(playerid, recieverid, text[]) -
die id musste abspeichern beim eigentlichen befehl
oben im script:
new drogen[MAX_PLAYERS][2];
#define DIALOG_DROGEN 1unten:
ocmd:drogenverkaufen(playerid,params[])
{
if(IsPlayerConnected(playerid))
{
new pID,preis;
if(sscanf(params,"ui",pID,preis)) return SendClientMessage(playerid,BLAU,"Info: /drogenverkaufen [ID] [Preis]");
drogen[pID][0]=playerid;
drogen[pID][1]=preis;
ShowPlayerDialog(pID,DIALOG_DROGEN,DIALOG_STYLE_MSGBOX,"Drogen:","Möchtest du Drogen kaufen?,"Kaufen","Abbrechen");
}
return 1;
}dialog response:
if(dialogid == DIALOG_DROGEN)
{
if(response==1)
{
SendClientMessage(playerid,ORANGE,"Du hast das Angebot angenommen!");
SendClientMessage(drogen[playerid][0],ORANGE,"Der Spieler hat dein Angebot angenommen!");
GivePlayerMoney(playerid,-drogen[playerid][1]);
GivePlayerMoney(drogen[playerid][0],drogen[playerid][1]);
}
if(response==0)
{
SendClientMessage(playerid,ROT,"Du hast das Angebot abgelehnt!");
SendClientMessage(drogen[playerid][0],ROT,"Der Spieler hat dein Angebot abgelehnt!");
}
} -
da fehlt das return 1;
vlcht liegts daran -
-
dafür brauchste sowas hier:
new sanchezkickstart1 = CreateVehicle(468, -1468.9741, 1557.6453, 1052.1300, 0.0000, -1, -1, 300);
LinkVehicleToInterior(sanchezkickstart1, 14); -
jup
if(dialogid == DIALOG_NEBENJOB)
{
if(response==1)
{
if(listitem == 0)
{
}
if(listitem == 1)
{
}
usw
}
}
und der dialog selber muss DIALOG_STYLE_LIST sein -
-
hast du eigene pickups benutzt für dein eingang?
wenn ja dann mach das einfach unter onplayerpickup