[Pomoc] Pravljenje droge

Započeo Kudrow, Avgust 11, 2011, 17:27:02 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 6 gostiju pregledaju ovu temu.

Skripta koju koristim: Red Country
Detaljan opis problema: Ovako, htio bih napraviti komandu sa timerom, i da ta komanda radi samo u jednom krugu. Htio bi napravit da kada kucam komandu /napravicrack da mi doda neku kolicinu droge npr. 50 grama. Zanima me dali je to moguce, i ako da dali bi mi mogao netko detaljno objasniti kako posto sam novi u tome? Molim vas.
Dio skripte: /
Neke slike/video za lakse dobivanje pomoci(neobavezno): /

PING GAMING
Gaming Community

Forum Nickname: Kudrow
Forum Status: Super Moderator
Postova: 50+
Karma: +8/-0
Online serveri: CS 1.6, COD 4
URL Foruma: www.ping-gaming.com
Vlasnik Community-a: Korda



dragan12

Za proveru da li je igrac blizu te pozicije koristi
http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint
I onda samo dole dodas da doda igracu drogu sa ovim:
I tu dodas PlayerInfo[playerid][pDrugs] = pa upisi kolicinu tu;
Eto ako i dalje neznas onda reci pa cu smuckati nesto ;)

new CRACK[ MAX_PLAYERS ]; // ili enumator -.-''


YCMD:napravicrack(playerid, params[], help)
{
  #pragma unused help
   #pragma unused params

  SetTimerEx("_CRACK_", 10000, false, "i", playerid); // 10 sec
  SendClientMessage(playerid, -1, "Uzimanje droge...");

   /*

           codecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecode

    */

  return 1;
}


forward _CRACK_(playerid); public _CRACK_()
{
 
  CRACK[ playerid ]=50;
  SendClientMessage(playerid, -1, "Kolicina: 50");
  return 1;
}


YCMD:usecrack(playerid, params[], help)
{
  #pragma unused help
  #pragma unused params

  if(CRACK[ playerid ] > 1)
  {
    CRACK[ playerid ] --;
    /*

           codecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecodecode

    */
  }else SendClientMessage(playerid,-1,"Nemas droge");

  return 1;
}


dalje...









uradi sam :/

Hvala puno Gagi_Corleone, napravio sam da mi dodava drogu.. Ako mi bude jos nesto trebala pomoc oko toga pisat cu ovdje, molimvas nemojte mi lockat temu.
Poslednja Izmena: Avgust 11, 2011, 17:56:53 POSLE PODNE od Kudrow

PING GAMING
Gaming Community

Forum Nickname: Kudrow
Forum Status: Super Moderator
Postova: 50+
Karma: +8/-0
Online serveri: CS 1.6, COD 4
URL Foruma: www.ping-gaming.com
Vlasnik Community-a: Korda



dragan12

Citat: Kudrow poslato Avgust 11, 2011, 17:48:34 POSLE PODNE
Citat: Gagi_Corleone poslato Avgust 11, 2011, 17:33:18 POSLE PODNE
Za proveru da li je igrac blizu te pozicije koristi
http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint
I onda samo dole dodas da doda igracu drogu sa ovim:
I tu dodas PlayerInfo[playerid][pDrugs] = pa upisi kolicinu tu;
Eto ako i dalje neznas onda reci pa cu smuckati nesto ;)

Probao sam ovo i radi, samo sto kada ponovno kucam tu komandu ostaje opet 50 grama, tj. ne dodaje sljedecih 50 grama.. Postoji li nesto da mi 'doda' a ne 'postavi' drogu?
Samo postavis  PlayerInfo[playerid][pDrugs] += pa upisi kolicinu tu;
;)

Pozdrav evo mene opet.
Imam sljedeca pitanja:
1. Kako/sta da ubacim da kada kucam /napravicrack a nisam na odredjenom poziciji da mi napise "Niste u Tvornici Cracka" i da oznaci sa checkpointom na mapi?
2. Kako da napravim da samo jedna organizacija moze to koristit, a ako nisam iz te org da napise "Niste u toj i toj org.."?
Poslednja Izmena: Avgust 12, 2011, 18:52:08 POSLE PODNE od Kudrow

PING GAMING
Gaming Community

Forum Nickname: Kudrow
Forum Status: Super Moderator
Postova: 50+
Karma: +8/-0
Online serveri: CS 1.6, COD 4
URL Foruma: www.ping-gaming.com
Vlasnik Community-a: Korda



dragan12

1. if(!IsPlayerInRangeOfPoint(playerid, 3.0, x,y,z)) return SetPlayerCheckpoint(playerid,x,y,z,3); SendClientMessage(playerid,CRVENA,"{FFFFFF}Greska:{E01E1B}Niste kod tezge sa hranom!");
Samo za prve kordinate x,y,z stavi gde moze da kuca, posle return za x,y,z stavi kordinate gde da mu oznaci CP


2.if(PlayerInfo[playerid][pLeader] != ID org || PlayerInfo[playerid][pMember] != ID org)) return SendClientMessage(playerid,CRVENA,"{FFFFFF}Greska:{E01E1B}Morate biti clan te organizacije!");[/b]
Samo postavi ID org.
Nesto jednostavno eto ;) Radice valjda

Gagi moze pomoc opet, ili netko?
Kako da ubacim timer ovdje? Znaci da se ova komanda (/napravicrack) moze koristit svakih 2min, a ako kucas prije nego sto prodje to vrjeme da ti napise "Morate sacekati 2 minute."? Ako biste mi mogli dodat timer u ovo dolje bio bi vam jako zahvalan..

if(!strcmp("/napravicrack",cmdtext))
{
    if(IsPlayerInRangeOfPoint(playerid, 3.0, 2422.23315, 145.628250, 30.79349))
    {
        SendClientMessage(playerid,0x9ACD32AA,"Uspjesno ste napravili Crack!");
        PlayerInfo[playerid][pDrugs] += 50;
        }
    return 1;
}

PING GAMING
Gaming Community

Forum Nickname: Kudrow
Forum Status: Super Moderator
Postova: 50+
Karma: +8/-0
Online serveri: CS 1.6, COD 4
URL Foruma: www.ping-gaming.com
Vlasnik Community-a: Korda



dragan12

Evo ja sam uradio u ZCMD
Zamrzne ga na dve minute i onda ga posle odmrzne


CMD:napravicrack(playerid,params[])
{
    if(!IsPlayerInRangeOfPoint(playerid, 3.0, 2422.23315, 145.628250, 30.79349)) return SendClientMessage(playerid,COLOR_RED"Niste na mestu za pravljenje droge");
        SendClientMessage(playerid,0x9ACD32AA,"Uspjesno ste napravili Crack!");
SetTimerEx("PraviCrack", 120000, false, "i", playerid);
TogglePlayerControllable(playerid, 0);  
SendClientMessage(playerid,COLOR_BLUE"Morate sacekati dve minute da napraviti drogu");
    return 1;
}



Gore dodas forward PraviCrack();


I onda na kraj moda dodas
public PraviCrack()
{
PlayerInfo[playerid][pDrugs] += 50;  
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid,COLOR_BLUE"Napravili ste drogu");
}

Sve sam stavio kako si mi rekao i izbaci mi 5 errora..

C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18715) : error 017: undefined symbol "napravicrack"
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18717) : error 001: expected token: ",", but found "-string-"
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18717) : warning 215: expression has no effect
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18717) : error 001: expected token: ";", but found ")"
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18717) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18717) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


5 Errors.


CMD:napravicrack(playerid,params[]); // Ovo je linija 18715
{
    if(!IsPlayerInRangeOfPoint(playerid, 3.0, 2422.23315, 145.628250, 30.79349)) return SendClientMessage(playerid,COLOR_RED"Niste na mestu za pravljenje droge"); // Ovo je linija 18717
        SendClientMessage(playerid,0x9ACD32AA,"Uspjesno ste napravili Crack!");
SetTimerEx("PraviCrack", 120000, false, "i", playerid);
TogglePlayerControllable(playerid, 0);
SendClientMessage(playerid,COLOR_BLUE" Morate sacekati 2 minute da napravite drogu!");
    return 1;
}

PING GAMING
Gaming Community

Forum Nickname: Kudrow
Forum Status: Super Moderator
Postova: 50+
Karma: +8/-0
Online serveri: CS 1.6, COD 4
URL Foruma: www.ping-gaming.com
Vlasnik Community-a: Korda



dragan12

To dodaj isto na kraj moda i koristi ZCMD
Znaci ako nemas gore kod include dodas
#include <zcmd>
Evo i download ako nemas ZCMD.inc
http://forum.sa-mp.com/showthread.php?t=91354

Citat: Gagi_Corleone poslato Avgust 12, 2011, 21:48:45 POSLE PODNE
To dodaj isto na kraj moda i koristi ZCMD
Znaci ako nemas gore kod include dodas
#include <zcmd>
Evo i download ako nemas ZCMD.inc
http://forum.sa-mp.com/showthread.php?t=91354

Nisam shvatio, sta da stavim na kraj moda??
Skinuo sam i ubacio zcmd, ali svejedno dolaze 4 errora.

C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18716) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18716) : error 017: undefined symbol "cmd_napravicrack"
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18716) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18716) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

PING GAMING
Gaming Community

Forum Nickname: Kudrow
Forum Status: Super Moderator
Postova: 50+
Karma: +8/-0
Online serveri: CS 1.6, COD 4
URL Foruma: www.ping-gaming.com
Vlasnik Community-a: Korda



dragan12

Citat: Kudrow poslato Avgust 12, 2011, 21:56:39 POSLE PODNE
Citat: Gagi_Corleone poslato Avgust 12, 2011, 21:48:45 POSLE PODNE
To dodaj isto na kraj moda i koristi ZCMD
Znaci ako nemas gore kod include dodas
#include <zcmd>
Evo i download ako nemas ZCMD.inc
http://forum.sa-mp.com/showthread.php?t=91354

Nisam shvatio, sta da stavim na kraj moda??
Skinuo sam i ubacio zcmd, ali svejedno dolaze 4 errora.

C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18716) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18716) : error 017: undefined symbol "cmd_napravicrack"
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18716) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(18716) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

Ovo:
CMD:napravicrack(playerid,params[]); // Ovo je linija 18715
{
    if(!IsPlayerInRangeOfPoint(playerid, 3.0, 2422.23315, 145.628250, 30.79349)) return SendClientMessage(playerid,COLOR_RED"Niste na mestu za pravljenje droge"); // Ovo je linija 18717
        SendClientMessage(playerid,0x9ACD32AA,"Uspjesno ste napravili Crack!");
SetTimerEx("PraviCrack", 120000, false, "i", playerid);
TogglePlayerControllable(playerid, 0);
SendClientMessage(playerid,COLOR_BLUE" Morate sacekati 2 minute da napravite drogu!");
    return 1;
}

To neide pod public OnPlayerCommandText...
To mozes staviti npr. na kraj moda. i tamo krenes da redjas ZCMD komande. Znaci spusti skroz dole i tamo stavi komandu.

 :'(
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(63935) : warning 218: old style prototypes used with optional semicolumns
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(63936) : error 055: start of function body without function header
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(63937) : error 010: invalid function or declaration
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(63942) : error 010: invalid function or declaration
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(63948) : error 017: undefined symbol "playerid"
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(63949) : error 017: undefined symbol "playerid"
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(63950) : error 017: undefined symbol "playerid"
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(63950) : warning 215: expression has no effect
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(63950) : error 001: expected token: ";", but found ")"
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(63950) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Petar\Desktop\RedLine\gamemodes\rcrp.PWN(63950) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


9 Errors.


Ovo mi je trenutno na kraju skripte:
//-------------------- Komande vezane za Tvornicu Cracka u Palomino Creeku ----------------------------//

//-------------------- /napravicrack cmd --------------//
CMD:napravicrack(playerid,params[]);
{
    if(!IsPlayerInRangeOfPoint(playerid, 3.0, 2422.23315, 145.628250, 30.79349)) return SendClientMessage(playerid,COLOR_RED"Niste na mestu za pravljenje droge");
        SendClientMessage(playerid,0x9ACD32AA,"Uspjesno ste napravili Crack!");
SetTimerEx("PraviCrack", 120000, false, "i", playerid);
TogglePlayerControllable(playerid, 0);
SendClientMessage(playerid,COLOR_BLUE" Morate sacekati 2 minute da napravite drogu!");
    return 1;
}

//-------------------- Pravljenje Cracka u Tvornici Cracka! -------------//
public PraviCrack()
{
PlayerInfo[playerid][pDrugs] += 50;
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid,COLOR_LIGHTBLUE"Napravili ste drogu!");
}



Izvini sto te gnjavim, ali stvarno nemam pojma sa skriptanjem, a ovo nista ne razumijem..

PING GAMING
Gaming Community

Forum Nickname: Kudrow
Forum Status: Super Moderator
Postova: 50+
Karma: +8/-0
Online serveri: CS 1.6, COD 4
URL Foruma: www.ping-gaming.com
Vlasnik Community-a: Korda



Funkcija public PraviCrack() ti ne valja.

Navednoj funkciji moraš proslediti kao argument/parametar (kako god samo hoćeš) id igrača na kome se vrši akcija, odnosno niz akcija.

Svugdi gde ti piše: PraviCrack()

Stavi: PraviCrack(playerid).



NAPOMENA: SetTimerEx("PraviCrack", 120000, false, "i", playerid); ovo ostavi ovako.

EDIT: Ovo:
SendClientMessage(playerid,COLOR_LIGHTBLUE"Napravili ste drogu!");
Ti takoÄ'e ne velja, fali ti zarez, stavi ovako:


SendClientMessage(playerid,COLOR_LIGHTBLUE,"Napravili ste drogu!");
Poslednja Izmena: Avgust 12, 2011, 22:21:34 POSLE PODNE od mikec